Login

Enode API 2024-10-01

This reference provides a comprehensive overview of the Enode API endpoints for accessing and controlling its hardware and features. The API follows REST principles, and uses OAuth 2.0.

This page features detailed documentation for each of our endpoints. You can also explore our API through our updated OpenAPI specifications or Postman collection.

The API is versioned, and all documentation on this page, including the links to the OpenAPI specifications and Postman collection is specific to the selected version.

Environments

We provide multiple environments, each with unique data access policies, and live/mocked vendors.

Environments are isolated from each other. Client credentials are tied to a specific environment and cannot be reused across environments.

Copy linkProduction

Features the latest stable software, live vendors, and strict data access controls.

NameURL
APIhttps://enode-api.production.enode.io
OAuth Tokenhttps://oauth.production.enode.io/oauth2/token
Link UIhttps://link.enode.com

Copy linkSandbox

Includes the latest stable software and mocked vendors/vehicles/chargers.

NameURL
APIhttps://enode-api.sandbox.enode.io
OAuth Tokenhttps://oauth.sandbox.enode.io/oauth2/token
Link UIhttps://link.sandbox.enode.io

Authentication

The Enode API uses OAuth 2.0 client access tokens for authenticating server requests.

Copy linkAPI credentials

Enode API access begins with a client and its corresponding client ID and client secret. Clients organize data, are separate, and relate to a specific environmentAPI.

API credentials are used to obtain an access tokenAPI for accessing client-wide endpointsAPI and user-specific endpointsAPI.

Key Description
Client IDThe identifier for your client, referred to as the client_id.
Client secretThe secret for your client, referred to as the client_secret.

Copy linkGetting an access token

The access token authorizes client access to all data and functionality. Obtain it via the OAuth 2.0 client credentials grant using the API credentialsAPI and the relevant OAuth URLsAPI for your client's environment.

Token request example

curl https://oauth.{YOUR_CLIENT_ENVIRONMENT}.enode.io/oauth2/token \
-X POST \
-u {YOUR_CLIENT_ID}:{YOUR_CLIENT_SECRET} \
-d "grant_type=client_credentials"

After requesting the token URL, you'll receive an access token in the response. Cache this token on your server until it expires and needs refreshingAPI. Keep the access token secret.

Token response example

{
  "access_token": "{YOUR_ACCESS_TOKEN}",
  "expires_in": 3599,
  "scope": "",
  "token_type": "bearer"
}

Copy linkRefreshing access tokens

Access tokens expire hourly, indicated by the expires_in key in the response. When expired, obtain a new tokenAPI.

Copy linkAccessing the API with the access token

Authenticate all API requests using a bearer authentication header. This header accesses client-wide endpoints (service healthAPI, tariffsAPI, user managementAPI, and webhooksAPI).

Type Value
HeaderAuthorization: Bearer {YOUR_ACCESS_TOKEN}

Client resource request example

curl https://enode-api.{YOUR_CLIENT_ENVIRONMENT}.enode.io/health/ready \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \

Copy linkAccessing user-specific endpoints

For resources specific to a user, include an additional header with the user ID along with the general authorization header. For versions newer than 2023-08-01, this is no longer required.

Use this additional header for general user endpoints (locationsAPI, usersAPI, schedulesAPI, statisticsAPI) and device-specific endpoints (chargersAPI, HVACsAPI, solar invertersAPI, and vehiclesAPI).

Type Value
HeaderEnode-User-Id: {USER_ID}

User resource request example

curl https://enode-api.{YOUR_CLIENT_ENVIRONMENT}.enode.io/me \
-X GET \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
-H "Enode-User-Id: {USER_ID}" \

Response times

Enode resources like Schedules and Locations have response times of <200ms. However, vehicle interactions involve various delays and timing characteristics.

Understanding the range of possible timings without diving into vendor-specific causes, helps you account for these factors in your UX design.

Copy linkAPI GET requests

Copy linkGet Vehicle

Get Vehicles and List Vehicles are fast operations since all data is prefetched by Enode and shared from a cache.

On API versions prior to 2023-08-01 it is possible to request a synchronous update where data is fetched directly from the vendor. Such requests have longer response times, sometimes 30 seconds or more, depending on the characteristics of the underlying vendor APIs. From 2023-08-01 onwards this has been replaced by the refresh hintAPI mechanism.

The Login step usually takes <2 seconds, but can rarely take up to 30 seconds due to background negotiations, retries, and initial vehicle data fetching.

The final Accept step experiences similar delays as List Vehicles.

Copy linkCharging commands

Charging commands show significant timing variability among vendors. Initiating the action is instant, but the updated charging state typically takes 20 seconds to appear. Occasionally the action may take 5 minutes or more to confirm.

Copy linkWebhooks

Webhooks typically involve polling and dynamically adjust the polling rate based on various factors to balance prompt updates with avoiding unnecessary load on the vehicle.

The maximum baseline delay between a real-world change (e.g., a vehicle being plugged in) and the resulting webhook notification is typically 7 minutes. However, actual delays can vary depending on factors such as vehicle activity and network conditions. Below is a general guide for typical webhook delays:

Vehicle contextTypical delay
default~7 minutes
charging~2-5 minutes
smartcharge PLAN:*~2 minutes
sleeping~20 minutes

If you'd like to request a faster refresh, you can call the various /refresh-hint endpoints found on devices to queue an accelerated data refresh.

Scopes

Access to the data and controls of a device are scoped by an inclusive scopes structure. The scopes are requested in the Link user endpoint via the scopes parameter. Scopes are presented to your user in Link UI, and explained through example data and examples of features enabled by each scope. Your user is not able to de-select or configure scopes themselves in Link UI.

  • Data scopes include all data and states we fetch from the device, excluding location data, and is always required (e.g vehicle:read:data)
  • Location scopes include the location coordinates of the device (e.g. vehicle:read:location)
  • Control scopes are always explicit to the type of control that is requested (e.g. vehicle:control:charging)

The applied scopes are surfaced through the scopes object in device responses (see example below).

Copy linkOverview of scopes

Asset type Scope Description
Batterybattery:control:operation_modeControls the operation mode of the battery
battery:read:locationReads the GPS coordinates of the battery
battery:read:dataReads the battery data, such as the charge state, configuration and general information
Chargercharger:control:chargingControls the charging of the charger, including start/stop, setting max current, and setting a charge rate limit
charger:read:dataReads the charger data, such as the charge state and general information
HVAChvac:control:modeControls the mode (permanent hold or follow schedule) of the HVAC unit
hvac:read:dataReads the HVAC data, such as the information, thermostat state and temperature state
Inverterinverter:control:power_limitControls the power limits of an inverter. This is an early adopter feature - reach out to your customer success manager if you are interested in participating.
inverter:read:dataReads the inverter data, such as the production state and general information
inverter:read:locationReads the GPS coordinates of the inverter
Metermeter:read:locationReads the GPS coordinates of the meter
meter:read:dataReads the meter data, such as energy state and general information
Vehiclevehicle:control:chargingControls the charging of the vehicle
vehicle:read:dataReads the vehicle data, such as charge state, odometer and general information
vehicle:read:locationReads the GPS coordinates of the vehicle

Copy linkHandling excluded scopes

Copy linkThe relationship between scopes and capabilities

If a device is missing a scope, e.g. a charger that does not have the charger:control:charging scope set, will always have the charging related capabilities will always be set as isCapable: false with no intervention specified.

Example charger response

{
  "id": "2211e263-0362-4235-83f4-887bdf3ee414",
  "userId": "17d9f847-8a1c-4158-adaa-4911a7acd5f9",
  "vendor": "ZAPTEC",
  "lastSeen": "2023-03-21T21:08:27.596Z",
  "isReachable": true,
  "locationId": "2211e263-d6d4-d6d4-d6d4-dbdd77ec82b6",
  "scopes": ["charger:read:data"], // Scopes applied to the device
  "chargeState": { ... },
  "information": { ... },
  "capabilities": {
    "information": {
      "isCapable": true, // Capable via the charger:read:data scope
      "interventionIds": []
    },
    "chargeState": {
      "isCapable": true, // Capable via the charger:read:data scope
      "interventionIds": []
    },
    "startCharging": {
      "isCapable": false, // Missing charger:control:charging scope
      "interventionIds": []
    },
    "stopCharging": {
      "isCapable": false, // Missing charger:control:charging scope
      "interventionIds": []
    },
    "setMaxCurrent": {
      "isCapable": false, // Missing charger:control:charging scope
      "interventionIds": []
    },
    "setChargeRateLimit": {
      "isCapable": false, // Missing charger:control:charging scope
      "interventionIds": []
    }
  }
}

Copy linkResponses when the location scope is excluded

Devices with a missing location scopes will respond with longitude: null and latitude: null as part of their location object.

Copy linkResponses when a control scopes is excluded

Devices with missing control scopes will respond with a 403 error, and the action or command will not go through to the device.

Copy linkApplying new scopes to a device

To set new scopes for a device, it needs to be re-linked via the Link userAPI endpoint by setting new scope values in the scopes parameter.

Errors and problems

Copy linkErrors when accessing a User's resources

When using an access_token to access a user's resources, you may encounter the following 4XX range HTTP Status Codes:

HTTP Status CodeExplanation
400 Bad RequestThe request payload failed schema validation or parsing
401 UnauthorizedMissing or invalid authentication details
403 ForbiddenAuthentication succeeded, but the user lacks access to the resource due to a missing control scope.
404 Not FoundRequested resource doesn't exist
405 Method Not AllowedVendor unavailability prevented request completion
408 Request TimeoutVendor timeout prevented request completion
409 ConflictVendor rejection prevented request completion
424 Failed DependencyFailed vendor requests prevented request completion
429 Too Many RequestsVendor rate limiting prevented request completion

In all cases, an RFC7807 Problem Details body is returned to aid in debugging.

HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
{
  "type": "https://developers.enode.com/problems/bad-request",
  "title": "Payload validation failed",
  "detail": "\"authorizationRequest.scope\" is required",
}

Copy linkProblems

TitleDescription
Bad request

Some part of the request was malformed. See associated detail message for more information.

Enode Controlled Entity

This entity is currently managed by Smart Charging or Schedules and cannot accept manual commands. Either disable the feature controlling the target, or force charging to start through our External Start APIAPI.

Entity Not Found

The requested entity was not found on the user's account.

Forbidden

The current context is not allowed to access the requested resource.

Not Found

The requested entity was not found on the user's account. If requesting vendor entities, ensure you're using the top level id field and not information.id. information.id is the ID the vendor uses to refer to the entity and changes over time.

Server Error

A critical error has occurred. An employee has been alerted and will work to remedy the situation

Service Unavailable

The service is currently unavailable. Most likely the service was slow to respond, might be overloaded or down for maintenance. Other endpoints might still be available.

You may want to retry the request using a randomized backoff delay.

Check the Enode Status page if this problem persists.

Timeout

A request timed out. If this problem was returned by a route that tried to communicate with vendor APIs, remove the fields query parameter to fetch the Enode hosted cache. This cache is updated every 10 minutes.

Unauthorized

The request contained an invalid or expired token.

Validation Error

The response we prepared failed to pass outgoing validation. An employee has been alerted and will work to remedy the situation.

Versioning

Enode's REST API is versioned. A dated version is released when breaking changes occur, while new features and bug fixes (additive changes) are available in all supported API versions.

You can view all available versions and updates in the changelog.

API clients are pinned to the latest API version upon creation, affecting all API requests and webhook events. API responses include an Enode-Version header, and webhook events have a version field.

You can override the API version on a specific request by sending an Enode-Version in the request header.

Copy linkBreaking changes

Breaking changes will be released as a new version. When a new version is released, the previous version is supported for six months before deactivation. Enode staff will notify you in advance. Each API version comes with a migration guide explaining changes and upgrade suggestions.

We consider the following breaking changes

  • Changing a request’s authorization or authentication requirements
  • Adding a new required input parameter
  • Changing input validation
  • Removing an HTTP route or method
  • Removing or renaming a response parameter

All other additive changes are considered backwards compatible.

Copy linkVersion Lifecycle

Current

  • This is the latest API version, recommended for all customers.
  • It is the default version for new clients and the default version documented in our API Reference.
  • There is only ever one Current API version.

Deprecated

  • This version has been superseded by a newer version. Multiple Deprecated versions can exist.
  • Customers can still choose this version for new clients or webhook subscriptions at developers.enode.com.
  • Documentation will be marked as Deprecated.
  • New functionality may not be released to Deprecated versions and supported exclusively on the Current API version.
  • We recommend you to upgrade to the Current version as soon as possible.

Legacy

  • This version has been deprecated for 6 months. Multiple Legacy versions can exist.
  • Customers cannot select this version for new clients or webhook subscriptions.
  • Documentation will not be accessible from the API Reference. You can review Legacy documentation by logging in to your organization dashboard and selecting a client with a Legacy version.
  • Functionality may be degraded, and no new features will be added.
  • 4 weeks after entering Legacy status, we will begin preparations for automatically upgrading clients on this version. Enode will conduct API brownouts for clients still using Legacy versions at this time. During these brownouts, we will randomly reject API requests using the Legacy API version.
  • 8 weeks after entering Legacy status, clients and webhooks using this version will be automatically upgraded to the Current API version.

Copy linkLabels

Some of the products or endpoints we have available are labelled. Here's an explanation of each.

Copy linkBeta

This product or endpoint is now feature complete and the implementation will not change. There may be bugs or stability issues but they are actively being worked on. We are still open to receiving feedback before delivering a stable release.

Copy linkEarly Adopter

This feature or endpoint is available to early adopters for initial feedback. The implementation is still evolving and may change or be removed.

Copy linkDeprecated

Individual features, endpoints, or fields tagged as Deprecated will be removed in a future version of the API. If you are using deprecated functionality you should update your application to use alternative features or methods we provide.

Pagination

Enode endpoints returning collections of a specific type of resource, such as GET /vehicles, will return a paginated response. Each response will consist of a subset of the resources, called a page. To retrieve the entire collection, subsequent pages need to be fetched.

Each response includes two properties: data and pagination. The data property contains the records of the current page and the pagination property contains cursors that can be used to fetch additional pages. These cursors, before and after, are unique identifiers for specific records in the dataset that help you keep track of your position and navigate through the pages.

Copy linkQuerying a paginated API endpoint

When querying a paginated endpoint, you may provide the following pagination query parameters:

Pagination query parameter example

{
  "pageSize": 50,
  "before": "MjAyMy0wNy0xOFQxMDowODowMi4zNzNa",
  "after": "MjAyMy0wNi0xNlQwOTowMzowMS4yNjJa"
}

All of these pagination query parameters are optional. If pageSize is not provided, the default page size of 50 is used. If neither before nor after are provided, the returned page will contain the first set of resources in the collection.

The before and after parameters are mutually exclusive. If both are supplied, the API will return an error.

Responses from most paginated endpoints are sorted in descending order according to when the resource was created. Hence, for a request like GET /vehicles, the most recently linked vehicles appear on the first page.

Copy linkHow to navigate through paginated API responses

The pagination property in a paginated response typically looks like this:

Pagination property example

"pagination": {
  "before": "MjAyMy0wNy0xOFQxMDowODowMi4zNzNa",
  "after": "MjAyMy0wNi0xNlQwOTowMzowMS4yNjJa"
}

The pagination property provides the cursors required to fetch the next and previous pages of resources:

  • before contains the cursor to be used to fetch the previous page.
  • after contains the cursor to be used to fetch the next page.

One or both cursors may be null instead of a string. This occurs when:

  • You are on the first page. There are no preceding resources, so before will now be null as otherwise it would point to an empty page.
  • You are on the last page. There are no subsequent resources, so after will now be null as otherwise it would point to an empty page.
  • The entire collection fits on the first page. There are no preceding or subsequent resources, so both before and after are null.

Copy linkFull example response

Example paginated response

{
    "data": [
        {
            "id": "0",
            "vendor": "TESLA",
            ...
            "isReachable": true
        },
        ...
        {
            "id": "49",
            "vendor": "TESLA",
            ...
            "isReachable": true
        }
    ],
    "pagination": {
        "before": null,
        "after": "MjAyMy0wNy0xOFQxMDowNDowMi4zNzNa"
    }
}

In this example, the data array includes the resource records for the current page. The pagination object provides the cursors for navigating to adjacent pages.

Images

Enode provides product images for vehicles and other assets. Image URLs are returned in the imageUrl field of API responses, such as GET /vehicles/{vehicleId} and webhook payloads.

Images are served through a global CDN with on-the-fly transformations including resizing, format conversion, and quality adjustment.

Copy linkBase URL

Images are served from https://cdn.images.enode.com/assets/{imageId}.{ext}.

Copy linkSupported formats

Format ExtensionMIME Type
PNG.pngimage/png
WebP.webpimage/webp
AVIF.avifimage/avif

Copy linkQuery parameters

Parameter DescriptionDefault
widthOutput width in pixels (1-2048)Original
heightOutput height in pixels (1-2048)Original
fitResize mode (see below)cover
qualityCompression quality (1-100) or "auto". Applies to WebP and AVIF only.auto

Copy linkFit modes

Mode Behavior
coverFill entire area, crop if needed (CSS object-fit: cover)
containFit within area, preserve aspect ratio (CSS object-fit: contain)
fillStretch to fill, may distort (CSS object-fit: fill)
insideLike contain, but never upscale
outsideLike cover, but never downscale

Copy linkExamples

Basic image request

curl "https://cdn.images.enode.com/assets/{imageId}.png"

Resize to 400px width

curl "https://cdn.images.enode.com/assets/{imageId}.png?width=400"

Convert to WebP with custom quality

curl "https://cdn.images.enode.com/assets/{imageId}.webp?quality=80"

Resize and convert

curl "https://cdn.images.enode.com/assets/{imageId}.webp?width=800&height=600&fit=contain"

Copy linkCaching

Images are served with long-lived cache headers. Transformed images are cached on the CDN, so subsequent requests for the same transformation are served directly from cache.

User management

Endpoints used to link and unlink users or vendors.

List users

GET /users

Returns a paginated list of all users.

Copy linkRequest

Query parameters
Copy linkafter string Optional

Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

Copy linkbefore string Optional

Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

Copy linkpageSize integer Optional

Number of records to return per page. Default page size is 50.

Copy linkResponse 200

Paginated list of users. Use query parameters to retrieve more results.

Attributes
  • Copy linkdata array of object

    Paginated list of users.

    Show child attributes
    • Copy linkdata[].id string

      ID of the user.

    • Copy linkdata[].createdAt string<date-time>

      ISO8601 UTC timestamp

    • Copy linkdata[].scopes array of string Deprecated

      Scopes for the user.

  • Copy linkpagination object

    Cursors to the pages before and after current page. See the PaginationAPI section for reference.

    Show child attributes
Was this section helpful?

Get user

GET /users/{userId}

Returns metadata about the given User ID, including a list of vendors for which the User has provided credentials.

Copy linkRequest

Path parameters
Copy linkuserId string Required

ID of the User.

Copy linkResponse 200

Attributes
  • Copy linkid string

    The user's ID.

  • Copy linklinkedVendors array of object
    Show child attributes
    • Copy linklinkedVendors[].vendor string

      Machine-friendly name of the vendor. Use this in API requests.

      Possible enum values:

        ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC
    • Copy linklinkedVendors[].vendorType string

      Possible enum values:

        vehiclechargerhvacinverterbatterymeter
    • Copy linklinkedVendors[].isValid boolean

      Whether the provided credentials are currently valid. A false value here indicates that a credential has become invalidated, and Link UserAPI should be used to get new credentials from this user.

Was this section helpful?

Unlink user

DELETE /users/{userId}

Deletes a User and all of their data permanently and invalidates any associated sessions, authorization codes, and access/refresh tokens.

Copy linkRequest

Path parameters
Copy linkuserId string Required

ID of the User.

Copy linkResponse 204

No Content

Was this section helpful?

Disconnect vendor

DELETE /users/{userId}/vendors/{vendor}

Disconnect a single Vendor from the User's account.

All stored data about their Vendor account will be deleted, and any assets that were provided by that Vendor will disappear from the system.

Copy linkRequest

Path parameters
Copy linkuserId string Required

ID of the User.

Copy linkvendor string Required

Machine-friendly name of the vendor. Use this in API requests.

Possible enum values:

    ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC

Copy linkResponse 204

No Content

Was this section helpful?

Disconnect vendor type

DELETE /users/{userId}/vendors/{vendor}/{vendorType}

Disconnect a specific vendor type from the User's account. Assets of this type from that Vendor will be removed. If no other types from that vendor remain, all its stored data will be deleted.

Copy linkRequest

Path parameters
Copy linkuserId string Required

ID of the User.

Copy linkvendor string Required

Machine-friendly name of the vendor. Use this in API requests.

Possible enum values:

    ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC
Copy linkvendorType string Required

Possible enum values:

    vehiclechargerhvacinverterbatterymeter

Copy linkResponse 204

No Content

Was this section helpful?
POST /users/{userId}/link

Creates a short-lived (24 hours), single-use device linking session. Use the returned linkUrl to present Link UI to your user via mobile in-app browsers or web redirects, or use the linkToken to present Link UI via the Link SDKs.

Path parameters

A unique identifier of your choice representing your user, e.g. a stable UUID you keep in your datastore. If a user entity matching the provided userId does not exist in your client, it will be created before the link session is created.

Attributes
  • Machine-friendly name of the vendor. Use this in API requests.

    Possible enum values:

      ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC
  • Possible enum values:

      vehiclechargerhvacinverterbatterymeter
  • The scope(s) you wish to request access to when linking an asset (learn more). The scopes will be presented for user consent in Link UI in the review data access step. The <assetType>:read:data scope is required for any asset type (e.g. if you wish to link a battery, you must request battery:read:data).

  • Sets the language for Link UI. We recommend matching this to the language of your application. If your language is not yet supported, you can specify browser which will assess your user's browser language via the Accept-Language header (learn more). Passing in browser will fall back to en-US if no match is found.

    Possible enum values:

      browserda-DKde-DEen-USen-GBes-ESfi-FIfr-FRit-ITja-JPlv-LVlt-LTnb-NOnl-NLnl-BEpl-PLpt-PTro-ROsv-SE
  • The URI your user will be redirected to after clicking "Complete" at the linking flow (from the last step in the Link UI flow). Only used in Link UI sessions that were not opened via the Link SDKs.

  • Sets the color scheme (light or dark) of Link UI. If your UI is only available in one of the color schemes, and does not follow the operating system color scheme, we recommend setting either light or dark. Defaults to system, which follows the users operating system settings.

    Default value: system

    Possible enum values:

      systemlightdark
Attributes

Connections limit reached for this client

Attributes
  • A URI reference that identifies the problem type.

  • A short, human-readable summary of the problem type.

  • A human-readable explanation specific to this occurrence of the problem.

  • A list of validation issues which occurred while validating some component of the network payload.

    Show child attributes
    Was this section helpful?
    POST /assets/{assetId}/relink

    Creates a short-lived (24 hours), single-use device linking session specifically tailored for relinking. See our relinking guide for more details. Use the returned linkUrl to present Link UI to your user via mobile in-app browsers or web redirects, or use the linkToken to present Link UI via the Link SDKs.

    Path parameters

    The ID of the already linked asset to relink.

    Attributes
    • Sets the language for Link UI. We recommend matching this to the language of your application. If your language is not yet supported, you can specify browser which will assess your user's browser language via the Accept-Language header (learn more). Passing in browser will fall back to en-US if no match is found.

      Possible enum values:

        browserda-DKde-DEen-USen-GBes-ESfi-FIfr-FRit-ITja-JPlv-LVlt-LTnb-NOnl-NLnl-BEpl-PLpt-PTro-ROsv-SE
    • The URI your user will be redirected to after clicking "Complete" at the linking flow (from the last step in the Link UI flow). Only used in Link UI sessions that were not opened via the Link SDKs.

    • Sets the color scheme (light or dark) of Link UI. If your UI is only available in one of the color schemes, and does not follow the operating system color scheme, we recommend setting either light or dark. Defaults to system, which follows the users operating system settings.

      Default value: system

      Possible enum values:

        systemlightdark
    Attributes

    Asset not found or already linked

    Attributes
    • A URI reference that identifies the problem type.

    • A short, human-readable summary of the problem type.

    • A human-readable explanation specific to this occurrence of the problem.

    • A list of validation issues which occurred while validating some component of the network payload.

      Show child attributes
      Was this section helpful?

      Deauthorize user

      DELETE /users/{userId}/authorization

      Deletes the User's stored vendor authorizations and credentials, invalidates any associated sessions, authorization codes, and access/refresh tokens.

      All other User data is retained, and if the User is sent through the Link User flow in the future, their account will be just as they left it.

      There is no dedicated webhook event but you'll receive deleted events for all assets that were associated with the user.

      Copy linkRequest

      Path parameters
      Copy linkuserId string Required

      ID of the User.

      Copy linkResponse 204

      No Content

      Was this section helpful?

      Vehicles

      EVs provide charge, location, and odometer data.

      List vehicles

      GET /vehicles

      Returns a paginated list of all available Vehicles

      Copy linkRequest

      Query parameters
      Copy linkafter string Optional

      Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

      Copy linkbefore string Optional

      Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

      Copy linkpageSize integer Optional

      Number of records to return per page. Default page size is 50.

      Copy linkResponse 200

      Attributes
      • Copy linkdata array of object
        Show child attributes
        • Copy linkdata[].id string

          Vehicle ID

        • Copy linkdata[].userId string

          The ID of the user that linked this vehicle.

        • Copy linkdata[].vendor string

          Machine-friendly name of the vendor. Use this in API requests.

          Possible enum values:

            ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
        • Copy linkdata[].lastSeen string<date-time>

          The last time Enode received live data or when the vehicle was initially linked.

        • Copy linkdata[].isReachable boolean or null

          Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

        • Copy linkdata[].information object

          Descriptive information about the Vehicle.

          Show child attributes
          • Copy linkdata[].information.vin string or null

            Vehicle VIN

          • Copy linkdata[].information.brand string or null

            A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

          • Copy linkdata[].information.model string or null

            Vehicle model

          • Copy linkdata[].information.year number or null

            Vehicle production year

          • Copy linkdata[].information.displayName string or null

            User-defined vehicle nickname.

          • Copy linkdata[].information.imageUrl string or null

            URL to an image of the vehicle model. null when not available.

        • Copy linkdata[].chargeState object

          Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

          Show child attributes
          • Copy linkdata[].chargeState.batteryLevel number or null

            Remaining battery in percent

          • Copy linkdata[].chargeState.range number or null

            Estimated remaining kilometers

          • Copy linkdata[].chargeState.isPluggedIn boolean or null

            Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

          • Copy linkdata[].chargeState.isCharging boolean or null

            Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

          • Copy linkdata[].chargeState.isFullyCharged boolean or null

            Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

          • Copy linkdata[].chargeState.batteryCapacity number or null

            Vehicle's usable battery capacity in kWh.

          • Copy linkdata[].chargeState.chargeLimit number or null

            Charge limit, as a percent of batteryCapacity.

            When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

          • Copy linkdata[].chargeState.chargeRate number or null

            The current charge rate in kW.

            This property is only available when the vehicle is charging, and is null any other time.

          • Copy linkdata[].chargeState.chargeTimeRemaining number or null

            Estimated time until the current charging intent is completed, in minutes.

            This property is only available when the vehicle is charging, and is null any other time.

          • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

            Time of last received charge state update

          • Copy linkdata[].chargeState.maxCurrent number or null Deprecated

            Deprecated: Use chargeRateLimit instead.

            The maximum current that the vehicle can draw from the charger, in amps.

          • Copy linkdata[].chargeState.powerDeliveryState string

            The current state of power delivery between the vehicle and charger.

            • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
            • UNPLUGGED: The vehicle is not connected to the charger.
            • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
            • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
            • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
            • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
            • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
            • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
            • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

            Possible enum values:

              UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
          • Copy linkdata[].chargeState.pluggedInChargerId string or null

            ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

            • The charger and the vehicle are linked to the same Enode userId.
            • AND Enode has determined that the vehicle and charger are currently plugged into each other.
          • Copy linkdata[].chargeState.chargeRateLimit number or null

            The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

            Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

        • Copy linkdata[].smartChargingPolicy object

          Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

          Show child attributes
          • Copy linkdata[].smartChargingPolicy.isEnabled boolean

            When enabled, this vehicle's charging status may be controlled by Smart Charging

          • Copy linkdata[].smartChargingPolicy.deadline string or null

            The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

          • Copy linkdata[].smartChargingPolicy.minimumChargeLimit number

            Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

        • Copy linkdata[].odometer object

          Vehicle's odometer reading in kilometers with timestamp

          Show child attributes
          • Copy linkdata[].odometer.distance number or null

            Odometer in kilometers

          • Copy linkdata[].odometer.lastUpdated string<date-time> or null

            Time of the last odometer update (ISO 8601 UTC timestamp)

        • Copy linkdata[].capabilities object

          A collection of descriptors that describe the capabilities of this specific vehicle.

          When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

          Show child attributes
          • Copy linkdata[].capabilities.information object
            Show child attributes
            • Copy linkdata[].capabilities.information.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.information.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.chargeState object
            Show child attributes
            • Copy linkdata[].capabilities.chargeState.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.chargeState.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.location object
            Show child attributes
            • Copy linkdata[].capabilities.location.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.location.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.odometer object
            Show child attributes
            • Copy linkdata[].capabilities.odometer.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.odometer.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.setMaxCurrent object
            Show child attributes
            • Copy linkdata[].capabilities.setMaxCurrent.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.setMaxCurrent.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.startCharging object
            Show child attributes
            • Copy linkdata[].capabilities.startCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.startCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.stopCharging object
            Show child attributes
            • Copy linkdata[].capabilities.stopCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.stopCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.smartCharging object
            Show child attributes
            • Copy linkdata[].capabilities.smartCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.smartCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.refreshState object
            Show child attributes
            • Copy linkdata[].capabilities.refreshState.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.refreshState.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.setChargeRateLimit object
            Show child attributes
            • Copy linkdata[].capabilities.setChargeRateLimit.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.setChargeRateLimit.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange object
              Show child attributes
              • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW object

                Allowed charge rate limit range in kW.

                Show child attributes
                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.min number or null

                  The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.max number or null

                  The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

        • Copy linkdata[].scopes array of string

          Scopes that the user has granted for this vehicle.

        • Copy linkdata[].location object

          Vehicle's GPS coordinates with timestamp

          Show child attributes
          • Copy linkdata[].location.longitude number or null

            Longitude in degrees

          • Copy linkdata[].location.latitude number or null

            Latitude in degrees

          • Copy linkdata[].location.lastUpdated string<date-time> or null

            Time of last received location

          • Copy linkdata[].location.id string<uuid> or null

            ID of the location the vehicle is currently positioned at (if any).

      • Copy linkpagination object

        Cursors to the pages before and after current page. See the PaginationAPI section for reference.

        Show child attributes
      Was this section helpful?

      List user vehicles

      GET /users/{userId}/vehicles

      Paginated list of user vehicles.

      Copy linkRequest

      Path parameters
      Copy linkuserId string Required

      ID of the User.

      Query parameters
      Copy linkafter string Optional

      Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

      Copy linkbefore string Optional

      Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

      Copy linkpageSize integer Optional

      Number of records to return per page. Default page size is 50.

      Copy linkResponse 200

      Attributes
      • Copy linkdata array of object
        Show child attributes
        • Copy linkdata[].id string

          Vehicle ID

        • Copy linkdata[].userId string

          The ID of the user that linked this vehicle.

        • Copy linkdata[].vendor string

          Machine-friendly name of the vendor. Use this in API requests.

          Possible enum values:

            ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
        • Copy linkdata[].lastSeen string<date-time>

          The last time Enode received live data or when the vehicle was initially linked.

        • Copy linkdata[].isReachable boolean or null

          Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

        • Copy linkdata[].information object

          Descriptive information about the Vehicle.

          Show child attributes
          • Copy linkdata[].information.vin string or null

            Vehicle VIN

          • Copy linkdata[].information.brand string or null

            A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

          • Copy linkdata[].information.model string or null

            Vehicle model

          • Copy linkdata[].information.year number or null

            Vehicle production year

          • Copy linkdata[].information.displayName string or null

            User-defined vehicle nickname.

          • Copy linkdata[].information.imageUrl string or null

            URL to an image of the vehicle model. null when not available.

        • Copy linkdata[].chargeState object

          Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

          Show child attributes
          • Copy linkdata[].chargeState.batteryLevel number or null

            Remaining battery in percent

          • Copy linkdata[].chargeState.range number or null

            Estimated remaining kilometers

          • Copy linkdata[].chargeState.isPluggedIn boolean or null

            Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

          • Copy linkdata[].chargeState.isCharging boolean or null

            Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

          • Copy linkdata[].chargeState.isFullyCharged boolean or null

            Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

          • Copy linkdata[].chargeState.batteryCapacity number or null

            Vehicle's usable battery capacity in kWh.

          • Copy linkdata[].chargeState.chargeLimit number or null

            Charge limit, as a percent of batteryCapacity.

            When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

          • Copy linkdata[].chargeState.chargeRate number or null

            The current charge rate in kW.

            This property is only available when the vehicle is charging, and is null any other time.

          • Copy linkdata[].chargeState.chargeTimeRemaining number or null

            Estimated time until the current charging intent is completed, in minutes.

            This property is only available when the vehicle is charging, and is null any other time.

          • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

            Time of last received charge state update

          • Copy linkdata[].chargeState.maxCurrent number or null Deprecated

            Deprecated: Use chargeRateLimit instead.

            The maximum current that the vehicle can draw from the charger, in amps.

          • Copy linkdata[].chargeState.powerDeliveryState string

            The current state of power delivery between the vehicle and charger.

            • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
            • UNPLUGGED: The vehicle is not connected to the charger.
            • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
            • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
            • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
            • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
            • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
            • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
            • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

            Possible enum values:

              UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
          • Copy linkdata[].chargeState.pluggedInChargerId string or null

            ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

            • The charger and the vehicle are linked to the same Enode userId.
            • AND Enode has determined that the vehicle and charger are currently plugged into each other.
          • Copy linkdata[].chargeState.chargeRateLimit number or null

            The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

            Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

        • Copy linkdata[].smartChargingPolicy object

          Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

          Show child attributes
          • Copy linkdata[].smartChargingPolicy.isEnabled boolean

            When enabled, this vehicle's charging status may be controlled by Smart Charging

          • Copy linkdata[].smartChargingPolicy.deadline string or null

            The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

          • Copy linkdata[].smartChargingPolicy.minimumChargeLimit number

            Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

        • Copy linkdata[].odometer object

          Vehicle's odometer reading in kilometers with timestamp

          Show child attributes
          • Copy linkdata[].odometer.distance number or null

            Odometer in kilometers

          • Copy linkdata[].odometer.lastUpdated string<date-time> or null

            Time of the last odometer update (ISO 8601 UTC timestamp)

        • Copy linkdata[].capabilities object

          A collection of descriptors that describe the capabilities of this specific vehicle.

          When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

          Show child attributes
          • Copy linkdata[].capabilities.information object
            Show child attributes
            • Copy linkdata[].capabilities.information.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.information.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.chargeState object
            Show child attributes
            • Copy linkdata[].capabilities.chargeState.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.chargeState.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.location object
            Show child attributes
            • Copy linkdata[].capabilities.location.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.location.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.odometer object
            Show child attributes
            • Copy linkdata[].capabilities.odometer.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.odometer.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.setMaxCurrent object
            Show child attributes
            • Copy linkdata[].capabilities.setMaxCurrent.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.setMaxCurrent.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.startCharging object
            Show child attributes
            • Copy linkdata[].capabilities.startCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.startCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.stopCharging object
            Show child attributes
            • Copy linkdata[].capabilities.stopCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.stopCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.smartCharging object
            Show child attributes
            • Copy linkdata[].capabilities.smartCharging.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.smartCharging.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.refreshState object
            Show child attributes
            • Copy linkdata[].capabilities.refreshState.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.refreshState.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkdata[].capabilities.setChargeRateLimit object
            Show child attributes
            • Copy linkdata[].capabilities.setChargeRateLimit.isCapable boolean

              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

            • Copy linkdata[].capabilities.setChargeRateLimit.interventionIds array of string

              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange object
              Show child attributes
              • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW object

                Allowed charge rate limit range in kW.

                Show child attributes
                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.min number or null

                  The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.max number or null

                  The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

        • Copy linkdata[].scopes array of string

          Scopes that the user has granted for this vehicle.

        • Copy linkdata[].location object

          Vehicle's GPS coordinates with timestamp

          Show child attributes
          • Copy linkdata[].location.longitude number or null

            Longitude in degrees

          • Copy linkdata[].location.latitude number or null

            Latitude in degrees

          • Copy linkdata[].location.lastUpdated string<date-time> or null

            Time of last received location

          • Copy linkdata[].location.id string<uuid> or null

            ID of the location the vehicle is currently positioned at (if any).

      • Copy linkpagination object

        Cursors to the pages before and after current page. See the PaginationAPI section for reference.

        Show child attributes
      Was this section helpful?

      Get vehicle

      GET /vehicles/{vehicleId}

      Copy linkRequest

      Path parameters
      Copy linkvehicleId string Required

      ID of the Vehicle.

      Copy linkResponse 200

      Attributes
      • Copy linkid string

        Vehicle ID

      • Copy linkuserId string

        The ID of the user that linked this vehicle.

      • Copy linkvendor string

        Machine-friendly name of the vendor. Use this in API requests.

        Possible enum values:

          ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
      • Copy linklastSeen string<date-time>

        The last time Enode received live data or when the vehicle was initially linked.

      • Copy linkisReachable boolean or null

        Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

      • Copy linkinformation object

        Descriptive information about the Vehicle.

        Show child attributes
        • Copy linkinformation.vin string or null

          Vehicle VIN

        • Copy linkinformation.brand string or null

          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

        • Copy linkinformation.model string or null

          Vehicle model

        • Copy linkinformation.year number or null

          Vehicle production year

        • Copy linkinformation.displayName string or null

          User-defined vehicle nickname.

        • Copy linkinformation.imageUrl string or null

          URL to an image of the vehicle model. null when not available.

      • Copy linkchargeState object

        Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

        Show child attributes
        • Copy linkchargeState.batteryLevel number or null

          Remaining battery in percent

        • Copy linkchargeState.range number or null

          Estimated remaining kilometers

        • Copy linkchargeState.isPluggedIn boolean or null

          Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

        • Copy linkchargeState.isCharging boolean or null

          Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

        • Copy linkchargeState.isFullyCharged boolean or null

          Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

        • Copy linkchargeState.batteryCapacity number or null

          Vehicle's usable battery capacity in kWh.

        • Copy linkchargeState.chargeLimit number or null

          Charge limit, as a percent of batteryCapacity.

          When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

        • Copy linkchargeState.chargeRate number or null

          The current charge rate in kW.

          This property is only available when the vehicle is charging, and is null any other time.

        • Copy linkchargeState.chargeTimeRemaining number or null

          Estimated time until the current charging intent is completed, in minutes.

          This property is only available when the vehicle is charging, and is null any other time.

        • Copy linkchargeState.lastUpdated string<date-time> or null

          Time of last received charge state update

        • Copy linkchargeState.maxCurrent number or null Deprecated

          Deprecated: Use chargeRateLimit instead.

          The maximum current that the vehicle can draw from the charger, in amps.

        • Copy linkchargeState.powerDeliveryState string

          The current state of power delivery between the vehicle and charger.

          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
          • UNPLUGGED: The vehicle is not connected to the charger.
          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
          • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
          • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
          • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
          • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
          • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

          Possible enum values:

            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
        • Copy linkchargeState.pluggedInChargerId string or null

          ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

          • The charger and the vehicle are linked to the same Enode userId.
          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
        • Copy linkchargeState.chargeRateLimit number or null

          The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

          Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

      • Copy linksmartChargingPolicy object

        Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

        Show child attributes
        • Copy linksmartChargingPolicy.isEnabled boolean

          When enabled, this vehicle's charging status may be controlled by Smart Charging

        • Copy linksmartChargingPolicy.deadline string or null

          The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

        • Copy linksmartChargingPolicy.minimumChargeLimit number

          Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

      • Copy linkodometer object

        Vehicle's odometer reading in kilometers with timestamp

        Show child attributes
        • Copy linkodometer.distance number or null

          Odometer in kilometers

        • Copy linkodometer.lastUpdated string<date-time> or null

          Time of the last odometer update (ISO 8601 UTC timestamp)

      • Copy linkcapabilities object

        A collection of descriptors that describe the capabilities of this specific vehicle.

        When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

        Show child attributes
        • Copy linkcapabilities.information object
          Show child attributes
          • Copy linkcapabilities.information.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.information.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.chargeState object
          Show child attributes
          • Copy linkcapabilities.chargeState.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.chargeState.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.location object
          Show child attributes
          • Copy linkcapabilities.location.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.location.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.odometer object
          Show child attributes
          • Copy linkcapabilities.odometer.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.odometer.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.setMaxCurrent object
          Show child attributes
          • Copy linkcapabilities.setMaxCurrent.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.setMaxCurrent.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.startCharging object
          Show child attributes
          • Copy linkcapabilities.startCharging.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.startCharging.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.stopCharging object
          Show child attributes
          • Copy linkcapabilities.stopCharging.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.stopCharging.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.smartCharging object
          Show child attributes
          • Copy linkcapabilities.smartCharging.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.smartCharging.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.refreshState object
          Show child attributes
          • Copy linkcapabilities.refreshState.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.refreshState.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

        • Copy linkcapabilities.setChargeRateLimit object
          Show child attributes
          • Copy linkcapabilities.setChargeRateLimit.isCapable boolean

            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

          • Copy linkcapabilities.setChargeRateLimit.interventionIds array of string

            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

          • Copy linkcapabilities.setChargeRateLimit.allowedRange object
            Show child attributes
            • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW object

              Allowed charge rate limit range in kW.

              Show child attributes
              • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.min number or null

                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

              • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.max number or null

                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

      • Copy linkscopes array of string

        Scopes that the user has granted for this vehicle.

      • Copy linklocation object

        Vehicle's GPS coordinates with timestamp

        Show child attributes
        • Copy linklocation.longitude number or null

          Longitude in degrees

        • Copy linklocation.latitude number or null

          Latitude in degrees

        • Copy linklocation.lastUpdated string<date-time> or null

          Time of last received location

        • Copy linklocation.id string<uuid> or null

          ID of the location the vehicle is currently positioned at (if any).

      Was this section helpful?

      Set max currentEarly AdopterDeprecated

      POST /vehicles/{vehicleId}/max-current

      Deprecated: Use Set Charge Rate LimitAPI instead, which accepts a target in kW.

      Set the max current the vehicle is allowed to consume during charging. Currently only supported for Tesla vehicles and behind a feature flag. Reach out to Customer Success to get access.

      This request creates an Action that will retry until the vehicle's maxCurrent matches the expected value. The Action must complete before any further commands are sent to the vehicle. Only one Action can be active for a specific vehicle at a time. If a new Action is created, the previous Action will be automatically cancelled and transitioned to the CANCELLED state. Transitions can be tracked via the user:vendor-action:updated webhook event or Get Vehicle ActionAPI.

      Copy linkRequest

      Path parameters
      Copy linkvehicleId string Required

      ID of the Vehicle.

      Attributes
      • Copy linkmaxCurrent number Required

        Desired max current in ampere

      Copy linkResponse 200

      Attributes
      • Copy linkid string<uuid>

        The ID of the action.

      • Copy linkuserId string

        The ID of the user that owns the target of this action.

      • Copy linkcreatedAt string<date-time>

        Time when this action was created

      • Copy linkupdatedAt string<date-time>

        Time when this action was last updated

      • Copy linkcompletedAt string<date-time> or null

        Time when the action transitioned to a non-pending state.

      • Copy linkstate string

        The real-time status of an action executed on a target.

        • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
        • CONFIRMED: Successful transition of the target to the desired state.
        • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
        • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

        Possible enum values:

          PENDINGCONFIRMEDFAILEDCANCELLED
      • Copy linktargetId string

        ID of the entity which this action is controlling.

      • Copy linktargetType string

        Possible enum values:

          vehiclecharger
      • Copy linktargetState object

        Target maximum current for entity

        Show child attributes
        • Copy linktargetState.maxCurrent number

          Desired max current in ampere

      • Copy linkfailureReason object or null

        Information about why was this action not executed successfully.

        Show child attributes
        • Copy linkfailureReason.type string

          A machine-readable high level error category.

          • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
          • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
          • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
          • CONFLICT: A newer action for this device has been created. This action is now abandoned.
          • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
          • NOT_FOUND: The device was deleted while the action was PENDING.

          Possible enum values:

            NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
        • Copy linkfailureReason.detail string

          A human-readable explanation of why the action was unsuccessful.

      Copy linkResponse 400

      A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the vehicle cannot perform the action.

      Attributes
      • Copy linktype string

        A URI reference that identifies the problem type.

      • Copy linktitle string

        A short, human-readable summary of the problem type.

      • Copy linkdetail string

        A human-readable explanation specific to this occurrence of the problem.

      • Copy linkissues array of object

        A list of validation issues which occurred while validating some component of the network payload.

        Show child attributes
        Was this section helpful?

        Set charge rate limitEarly Adopter

        POST /vehicles/{vehicleId}/charge-rate-limit

        Sets the charge rate limit for a vehicle in kW. The vehicle must be plugged into a charger that supports this capability. Creates an Action that retries until the vehicle's chargeRateLimit matches the target value. Setting chargeRateLimit also changes maxCurrent.

        Only one Action can be active for a specific vehicle at a time. If a new Action is created, the previous Action will be automatically cancelled and transitioned to the CANCELLED state. Track transitions via the user:vendor-action:updated webhook event or Get Vehicle ActionAPI.

        If you are interested in joining the Early Adopter program, please reach out to Enode with a short description of your use case.

        Copy linkRequest

        Path parameters
        Copy linkvehicleId string Required

        ID of the Vehicle.

        Attributes
        • Copy linkchargeRateLimit number Required

          Desired charge rate limit in kilowatts (kW)

        Copy linkResponse 200

        Attributes
        • Copy linkid string<uuid>

          The ID of the action.

        • Copy linkuserId string

          The ID of the user that owns the target of this action.

        • Copy linkcreatedAt string<date-time>

          Time when this action was created

        • Copy linkupdatedAt string<date-time>

          Time when this action was last updated

        • Copy linkcompletedAt string<date-time> or null

          Time when the action transitioned to a non-pending state.

        • Copy linkstate string

          The real-time status of an action executed on a target.

          • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
          • CONFIRMED: Successful transition of the target to the desired state.
          • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
          • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

          Possible enum values:

            PENDINGCONFIRMEDFAILEDCANCELLED
        • Copy linktargetId string

          ID of the entity which this action is controlling.

        • Copy linktargetState object

          Target charge rate limit for charger

          Show child attributes
          • Copy linktargetState.chargeRateLimit number

            Desired charge rate limit in kilowatts (kW)

        • Copy linkfailureReason object or null

          Information about why was this action not executed successfully.

          Show child attributes
          • Copy linkfailureReason.type string

            A machine-readable high level error category.

            • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
            • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
            • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
            • CONFLICT: A newer action for this device has been created. This action is now abandoned.
            • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
            • NOT_FOUND: The device was deleted while the action was PENDING.

            Possible enum values:

              NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
          • Copy linkfailureReason.detail string

            A human-readable explanation of why the action was unsuccessful.

        • Copy linktargetType string

          Possible enum values:

            vehicle

        Copy linkResponse 400

        A precondition check failed. This occurs if the vehicle is not capable, not plugged in, or the charge rate limit is outside the allowed range.

        Attributes
        • Copy linktype string

          A URI reference that identifies the problem type.

        • Copy linktitle string

          A short, human-readable summary of the problem type.

        • Copy linkdetail string

          A human-readable explanation specific to this occurrence of the problem.

        • Copy linkissues array of object

          A list of validation issues which occurred while validating some component of the network payload.

          Show child attributes
          Was this section helpful?

          Get vehicle action

          GET /vehicles/actions/{actionId}

          Returns the current state of the requested Action.

          Copy linkRequest

          Path parameters
          Copy linkactionId string<uuid> Required

          ID of the Action.

          Copy linkResponse 200

          Attributes
          • Copy linkid string<uuid>

            The ID of the action.

          • Copy linkuserId string

            The ID of the user that owns the target of this action.

          • Copy linkcreatedAt string<date-time>

            Time when this action was created

          • Copy linkupdatedAt string<date-time>

            Time when this action was last updated

          • Copy linkcompletedAt string<date-time> or null

            Time when the action transitioned to a non-pending state.

          • Copy linkstate string

            The real-time status of an action executed on a target.

            • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
            • CONFIRMED: Successful transition of the target to the desired state.
            • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
            • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

            Possible enum values:

              PENDINGCONFIRMEDFAILEDCANCELLED
          • Copy linktargetId string

            ID of the target which this action is controlling.

          • Copy linkkind string

            Possible enum values:

              STARTSTOP
          • Copy linkfailureReason object or null

            Information about why was this action not executed successfully.

            Show child attributes
            • Copy linkfailureReason.type string

              A machine-readable high level error category.

              • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
              • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
              • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
              • CONFLICT: A newer action for this device has been created. This action is now abandoned.
              • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
              • NOT_FOUND: The device was deleted while the action was PENDING.

              Possible enum values:

                NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
            • Copy linkfailureReason.detail string

              A human-readable explanation of why the action was unsuccessful.

          • Copy linktargetType string

            Possible enum values:

              vehicle

          Copy linkResponse 404

          Action not found.

          Was this section helpful?

          Cancel vehicle action

          POST /vehicles/actions/{actionId}/cancel

          Cancels a pending vehicle action, halting any further attempts by Enode to execute it.

          Note: This only updates the action's status to CANCELLED within Enode and does not reflect a change in the vendor's cloud. Thus any pending action in the vendor's cloud might still be executed.

          Copy linkRequest

          Path parameters
          Copy linkactionId string<uuid> Required

          ID of the Action.

          Copy linkResponse 200

          Attributes
          • Copy linkid string<uuid>

            The ID of the action.

          • Copy linkuserId string

            The ID of the user that owns the target of this action.

          • Copy linkcreatedAt string<date-time>

            Time when this action was created

          • Copy linkupdatedAt string<date-time>

            Time when this action was last updated

          • Copy linkcompletedAt string<date-time> or null

            Time when the action transitioned to a non-pending state.

          • Copy linkstate string

            The real-time status of an action executed on a target.

            • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
            • CONFIRMED: Successful transition of the target to the desired state.
            • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
            • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

            Possible enum values:

              PENDINGCONFIRMEDFAILEDCANCELLED
          • Copy linktargetId string

            ID of the target which this action is controlling.

          • Copy linktargetType string

            Possible enum values:

              vehiclecharger
          • Copy linkkind string

            Possible enum values:

              STARTSTOP
          • Copy linkfailureReason object or null

            Information about why was this action not executed successfully.

            Show child attributes
            • Copy linkfailureReason.type string

              A machine-readable high level error category.

              • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
              • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
              • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
              • CONFLICT: A newer action for this device has been created. This action is now abandoned.
              • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
              • NOT_FOUND: The device was deleted while the action was PENDING.

              Possible enum values:

                NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
            • Copy linkfailureReason.detail string

              A human-readable explanation of why the action was unsuccessful.

          Copy linkResponse 404

          Action not found.

          Copy linkResponse 409

          Action already in a resolved state.

          Attributes
          • Copy linkid string<uuid>

            The ID of the action.

          • Copy linkuserId string

            The ID of the user that owns the target of this action.

          • Copy linkcreatedAt string<date-time>

            Time when this action was created

          • Copy linkupdatedAt string<date-time>

            Time when this action was last updated

          • Copy linkcompletedAt string<date-time> or null

            Time when the action transitioned to a non-pending state.

          • Copy linkstate string

            The real-time status of an action executed on a target.

            • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
            • CONFIRMED: Successful transition of the target to the desired state.
            • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
            • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

            Possible enum values:

              PENDINGCONFIRMEDFAILEDCANCELLED
          • Copy linktargetId string

            ID of the target which this action is controlling.

          • Copy linktargetType string

            Possible enum values:

              vehiclecharger
          • Copy linkkind string

            Possible enum values:

              STARTSTOP
          • Copy linkfailureReason object or null

            Information about why was this action not executed successfully.

            Show child attributes
            • Copy linkfailureReason.type string

              A machine-readable high level error category.

              • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
              • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
              • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
              • CONFLICT: A newer action for this device has been created. This action is now abandoned.
              • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
              • NOT_FOUND: The device was deleted while the action was PENDING.

              Possible enum values:

                NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
            • Copy linkfailureReason.detail string

              A human-readable explanation of why the action was unsuccessful.

          Was this section helpful?

          Refresh vehicle data

          POST /vehicles/{vehicleId}/refresh-hint

          Use this endpoint to initiate an expedited data refresh for the specified vehicle.

          Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
          This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

          Copy linkRequest

          Path parameters
          Copy linkvehicleId string Required

          ID of the Vehicle.

          Copy linkResponse 204

          Refresh hint registered successfully.

          Copy linkResponse 404

          The specified vehicle was not found.

          Was this section helpful?

          Chargers

          EV Chargers provide charging data.

          List chargers

          GET /chargers

          Returns a paginated list of all Chargers.

          Copy linkRequest

          Query parameters
          Copy linkafter string Optional

          Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

          Copy linkbefore string Optional

          Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

          Copy linkpageSize integer Optional

          Number of records to return per page. Default page size is 50.

          Copy linkResponse 200

          Attributes
          • Copy linkdata array of object

            Paginated list of chargers

            Show child attributes
            • Copy linkdata[].id string

              Charger ID

            • Copy linkdata[].userId string

              The ID of the user that linked this charger.

            • Copy linkdata[].vendor string

              Machine-friendly name of the vendor. Use this in API requests.

              Possible enum values:

                ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
            • Copy linkdata[].lastSeen string<date-time>

              The last time Enode communicated with the charger.

            • Copy linkdata[].isReachable boolean

              Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

            • Copy linkdata[].chargeState object

              Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

              Show child attributes
              • Copy linkdata[].chargeState.isPluggedIn boolean or null

                Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

              • Copy linkdata[].chargeState.isCharging boolean or null

                Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

              • Copy linkdata[].chargeState.chargeRate number or null

                The current charge rate in kW.

                This property is only available when the charger is actively charging a vehicle, and is null any other time.

              • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

                Time of latest charge state update

              • Copy linkdata[].chargeState.maxCurrent number or null Deprecated

                Deprecated: Use chargeRateLimit instead.

                Desired max current in amperes, if set

              • Copy linkdata[].chargeState.powerDeliveryState string

                The current state of power delivery between the vehicle and charger.

                • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                • UNPLUGGED: The vehicle is not connected to the charger.
                • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
                • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
                • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                Possible enum values:

                  UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
              • Copy linkdata[].chargeState.pluggedInVehicleId string or null

                ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

                • The charger and the vehicle are linked to the same Enode userId.
                • AND Enode has determined that the vehicle and charger are currently plugged into each other.
              • Copy linkdata[].chargeState.chargeRateLimit number or null

                The current charge rate limit in kW. Returns null when unavailable from the vendor.

                Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

            • Copy linkdata[].capabilities object

              A collection of descriptors that describe the capabilities of this specific charger

              Show child attributes
              • Copy linkdata[].capabilities.information object
                Show child attributes
                • Copy linkdata[].capabilities.information.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.information.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.chargeState object
                Show child attributes
                • Copy linkdata[].capabilities.chargeState.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.chargeState.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.startCharging object
                Show child attributes
                • Copy linkdata[].capabilities.startCharging.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.startCharging.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.stopCharging object
                Show child attributes
                • Copy linkdata[].capabilities.stopCharging.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.stopCharging.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.setMaxCurrent object
                Show child attributes
                • Copy linkdata[].capabilities.setMaxCurrent.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.setMaxCurrent.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.setChargeRateLimit object
                Show child attributes
                • Copy linkdata[].capabilities.setChargeRateLimit.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.setChargeRateLimit.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange object
                  Show child attributes
                  • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW object

                    Allowed charge rate limit range in kW.

                    Show child attributes
                    • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.min number or null

                      The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                    • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.max number or null

                      The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

            • Copy linkdata[].scopes array of string

              Scopes that the user has granted for this charger.

            • Copy linkdata[].information object

              Descriptive information about the Charger

              Show child attributes
              • Copy linkdata[].information.brand string

                A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

              • Copy linkdata[].information.model string

                Charger model

              • Copy linkdata[].information.displayName string or null

                Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

              • Copy linkdata[].information.year number or null

                Charger production year

              • Copy linkdata[].information.serialNumber string

                Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

              • Copy linkdata[].information.imageUrl string or null

                URL to an image of the charger model. null when not available.

            • Copy linkdata[].location object
              Show child attributes
              • Copy linkdata[].location.id string<uuid> or null

                ID of the location the charger is currently positioned at (if any).

              • Copy linkdata[].location.lastUpdated string<date-time> or null

                Time of last received location state update

          • Copy linkpagination object

            Cursors to the pages before and after current page. See the PaginationAPI section for reference.

            Show child attributes
          Was this section helpful?

          List user chargers

          GET /users/{userId}/chargers

          Returns a paginated list of chargers for the given userId.

          Copy linkRequest

          Path parameters
          Copy linkuserId string Required

          ID of the User.

          Query parameters
          Copy linkafter string Optional

          Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

          Copy linkbefore string Optional

          Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

          Copy linkpageSize integer Optional

          Number of records to return per page. Default page size is 50.

          Copy linkResponse 200

          Attributes
          • Copy linkdata array of object

            Paginated list of chargers

            Show child attributes
            • Copy linkdata[].id string

              Charger ID

            • Copy linkdata[].userId string

              The ID of the user that linked this charger.

            • Copy linkdata[].vendor string

              Machine-friendly name of the vendor. Use this in API requests.

              Possible enum values:

                ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
            • Copy linkdata[].lastSeen string<date-time>

              The last time Enode communicated with the charger.

            • Copy linkdata[].isReachable boolean

              Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

            • Copy linkdata[].chargeState object

              Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

              Show child attributes
              • Copy linkdata[].chargeState.isPluggedIn boolean or null

                Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

              • Copy linkdata[].chargeState.isCharging boolean or null

                Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

              • Copy linkdata[].chargeState.chargeRate number or null

                The current charge rate in kW.

                This property is only available when the charger is actively charging a vehicle, and is null any other time.

              • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

                Time of latest charge state update

              • Copy linkdata[].chargeState.maxCurrent number or null Deprecated

                Deprecated: Use chargeRateLimit instead.

                Desired max current in amperes, if set

              • Copy linkdata[].chargeState.powerDeliveryState string

                The current state of power delivery between the vehicle and charger.

                • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                • UNPLUGGED: The vehicle is not connected to the charger.
                • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
                • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
                • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                Possible enum values:

                  UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
              • Copy linkdata[].chargeState.pluggedInVehicleId string or null

                ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

                • The charger and the vehicle are linked to the same Enode userId.
                • AND Enode has determined that the vehicle and charger are currently plugged into each other.
              • Copy linkdata[].chargeState.chargeRateLimit number or null

                The current charge rate limit in kW. Returns null when unavailable from the vendor.

                Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

            • Copy linkdata[].capabilities object

              A collection of descriptors that describe the capabilities of this specific charger

              Show child attributes
              • Copy linkdata[].capabilities.information object
                Show child attributes
                • Copy linkdata[].capabilities.information.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.information.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.chargeState object
                Show child attributes
                • Copy linkdata[].capabilities.chargeState.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.chargeState.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.startCharging object
                Show child attributes
                • Copy linkdata[].capabilities.startCharging.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.startCharging.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.stopCharging object
                Show child attributes
                • Copy linkdata[].capabilities.stopCharging.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.stopCharging.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.setMaxCurrent object
                Show child attributes
                • Copy linkdata[].capabilities.setMaxCurrent.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.setMaxCurrent.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkdata[].capabilities.setChargeRateLimit object
                Show child attributes
                • Copy linkdata[].capabilities.setChargeRateLimit.isCapable boolean

                  The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                • Copy linkdata[].capabilities.setChargeRateLimit.interventionIds array of string

                  IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange object
                  Show child attributes
                  • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW object

                    Allowed charge rate limit range in kW.

                    Show child attributes
                    • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.min number or null

                      The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                    • Copy linkdata[].capabilities.setChargeRateLimit.allowedRange.kW.max number or null

                      The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

            • Copy linkdata[].scopes array of string

              Scopes that the user has granted for this charger.

            • Copy linkdata[].information object

              Descriptive information about the Charger

              Show child attributes
              • Copy linkdata[].information.brand string

                A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

              • Copy linkdata[].information.model string

                Charger model

              • Copy linkdata[].information.displayName string or null

                Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

              • Copy linkdata[].information.year number or null

                Charger production year

              • Copy linkdata[].information.serialNumber string

                Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

              • Copy linkdata[].information.imageUrl string or null

                URL to an image of the charger model. null when not available.

            • Copy linkdata[].location object
              Show child attributes
              • Copy linkdata[].location.id string<uuid> or null

                ID of the location the charger is currently positioned at (if any).

              • Copy linkdata[].location.lastUpdated string<date-time> or null

                Time of last received location state update

          • Copy linkpagination object

            Cursors to the pages before and after current page. See the PaginationAPI section for reference.

            Show child attributes
          Was this section helpful?

          Get charger

          GET /chargers/{chargerId}

          Copy linkRequest

          Path parameters
          Copy linkchargerId string Required

          ID of the Charger.

          Copy linkResponse 200

          Attributes
          • Copy linkid string

            Charger ID

          • Copy linkuserId string

            The ID of the user that linked this charger.

          • Copy linkvendor string

            Machine-friendly name of the vendor. Use this in API requests.

            Possible enum values:

              ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
          • Copy linklastSeen string<date-time>

            The last time Enode communicated with the charger.

          • Copy linkisReachable boolean

            Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

          • Copy linkchargeState object

            Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

            Show child attributes
            • Copy linkchargeState.isPluggedIn boolean or null

              Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

            • Copy linkchargeState.isCharging boolean or null

              Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

            • Copy linkchargeState.chargeRate number or null

              The current charge rate in kW.

              This property is only available when the charger is actively charging a vehicle, and is null any other time.

            • Copy linkchargeState.lastUpdated string<date-time> or null

              Time of latest charge state update

            • Copy linkchargeState.maxCurrent number or null Deprecated

              Deprecated: Use chargeRateLimit instead.

              Desired max current in amperes, if set

            • Copy linkchargeState.powerDeliveryState string

              The current state of power delivery between the vehicle and charger.

              • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
              • UNPLUGGED: The vehicle is not connected to the charger.
              • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
              • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
              • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
              • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
              • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
              • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

              Possible enum values:

                UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
            • Copy linkchargeState.pluggedInVehicleId string or null

              ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

              • The charger and the vehicle are linked to the same Enode userId.
              • AND Enode has determined that the vehicle and charger are currently plugged into each other.
            • Copy linkchargeState.chargeRateLimit number or null

              The current charge rate limit in kW. Returns null when unavailable from the vendor.

              Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

          • Copy linkcapabilities object

            A collection of descriptors that describe the capabilities of this specific charger

            Show child attributes
            • Copy linkcapabilities.information object
              Show child attributes
              • Copy linkcapabilities.information.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.information.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.chargeState object
              Show child attributes
              • Copy linkcapabilities.chargeState.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.chargeState.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.startCharging object
              Show child attributes
              • Copy linkcapabilities.startCharging.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.startCharging.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.stopCharging object
              Show child attributes
              • Copy linkcapabilities.stopCharging.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.stopCharging.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.setMaxCurrent object
              Show child attributes
              • Copy linkcapabilities.setMaxCurrent.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.setMaxCurrent.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.setChargeRateLimit object
              Show child attributes
              • Copy linkcapabilities.setChargeRateLimit.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.setChargeRateLimit.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkcapabilities.setChargeRateLimit.allowedRange object
                Show child attributes
                • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW object

                  Allowed charge rate limit range in kW.

                  Show child attributes
                  • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.min number or null

                    The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                  • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.max number or null

                    The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

          • Copy linkscopes array of string

            Scopes that the user has granted for this charger.

          • Copy linkinformation object

            Descriptive information about the Charger

            Show child attributes
            • Copy linkinformation.brand string

              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

            • Copy linkinformation.model string

              Charger model

            • Copy linkinformation.displayName string or null

              Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

            • Copy linkinformation.year number or null

              Charger production year

            • Copy linkinformation.serialNumber string

              Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

            • Copy linkinformation.imageUrl string or null

              URL to an image of the charger model. null when not available.

          • Copy linklocation object
            Show child attributes
            • Copy linklocation.id string<uuid> or null

              ID of the location the charger is currently positioned at (if any).

            • Copy linklocation.lastUpdated string<date-time> or null

              Time of last received location state update

          Was this section helpful?

          Set location for a charger

          PUT /chargers/{chargerId}

          Update the locationId field on a Charger.

          Copy linkRequest

          Path parameters
          Copy linkchargerId string Required

          ID of the Charger.

          Attributes
          • Copy linklocationId string<uuid> or null Required

          Copy linkResponse 200

          Attributes
          • Copy linkid string

            Charger ID

          • Copy linkuserId string

            The ID of the user that linked this charger.

          • Copy linkvendor string

            Machine-friendly name of the vendor. Use this in API requests.

            Possible enum values:

              ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
          • Copy linklastSeen string<date-time>

            The last time Enode communicated with the charger.

          • Copy linkisReachable boolean

            Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

          • Copy linkchargeState object

            Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

            Show child attributes
            • Copy linkchargeState.isPluggedIn boolean or null

              Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

            • Copy linkchargeState.isCharging boolean or null

              Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

            • Copy linkchargeState.chargeRate number or null

              The current charge rate in kW.

              This property is only available when the charger is actively charging a vehicle, and is null any other time.

            • Copy linkchargeState.lastUpdated string<date-time> or null

              Time of latest charge state update

            • Copy linkchargeState.maxCurrent number or null Deprecated

              Deprecated: Use chargeRateLimit instead.

              Desired max current in amperes, if set

            • Copy linkchargeState.powerDeliveryState string

              The current state of power delivery between the vehicle and charger.

              • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
              • UNPLUGGED: The vehicle is not connected to the charger.
              • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
              • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
              • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
              • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
              • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
              • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

              Possible enum values:

                UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
            • Copy linkchargeState.pluggedInVehicleId string or null

              ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

              • The charger and the vehicle are linked to the same Enode userId.
              • AND Enode has determined that the vehicle and charger are currently plugged into each other.
            • Copy linkchargeState.chargeRateLimit number or null

              The current charge rate limit in kW. Returns null when unavailable from the vendor.

              Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

          • Copy linkcapabilities object

            A collection of descriptors that describe the capabilities of this specific charger

            Show child attributes
            • Copy linkcapabilities.information object
              Show child attributes
              • Copy linkcapabilities.information.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.information.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.chargeState object
              Show child attributes
              • Copy linkcapabilities.chargeState.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.chargeState.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.startCharging object
              Show child attributes
              • Copy linkcapabilities.startCharging.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.startCharging.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.stopCharging object
              Show child attributes
              • Copy linkcapabilities.stopCharging.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.stopCharging.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.setMaxCurrent object
              Show child attributes
              • Copy linkcapabilities.setMaxCurrent.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.setMaxCurrent.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

            • Copy linkcapabilities.setChargeRateLimit object
              Show child attributes
              • Copy linkcapabilities.setChargeRateLimit.isCapable boolean

                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

              • Copy linkcapabilities.setChargeRateLimit.interventionIds array of string

                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkcapabilities.setChargeRateLimit.allowedRange object
                Show child attributes
                • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW object

                  Allowed charge rate limit range in kW.

                  Show child attributes
                  • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.min number or null

                    The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                  • Copy linkcapabilities.setChargeRateLimit.allowedRange.kW.max number or null

                    The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

          • Copy linkscopes array of string

            Scopes that the user has granted for this charger.

          • Copy linkinformation object

            Descriptive information about the Charger

            Show child attributes
            • Copy linkinformation.brand string

              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

            • Copy linkinformation.model string

              Charger model

            • Copy linkinformation.displayName string or null

              Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

            • Copy linkinformation.year number or null

              Charger production year

            • Copy linkinformation.serialNumber string

              Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

            • Copy linkinformation.imageUrl string or null

              URL to an image of the charger model. null when not available.

          • Copy linklocation object
            Show child attributes
            • Copy linklocation.id string<uuid> or null

              ID of the location the charger is currently positioned at (if any).

            • Copy linklocation.lastUpdated string<date-time> or null

              Time of last received location state update

          Was this section helpful?

          Set max currentDeprecated

          POST /chargers/{chargerId}/max-current

          Deprecated: Use Set Charge Rate LimitAPI instead, which accepts a target in kW.

          Register for a change of the maxCurrent field on a charger. This request creates an Action that will retry until the charger's maxCurrent matches the expected value. The Action must complete before any further commands are sent to the charger. Only one Action can be active for a specific charger at a time. If a new Action is created, the previous Action will be automatically cancelled and transitioned to the CANCELLED state. Transitions can be tracked via the user:vendor-action:updated webhook event or Get Charger ActionAPI.

          Copy linkRequest

          Path parameters
          Copy linkchargerId string Required

          ID of the Charger.

          Attributes
          • Copy linkmaxCurrent number Required

            Desired max current in ampere

          Copy linkResponse 200

          Attributes
          • Copy linkid string<uuid>

            The ID of the action.

          • Copy linkuserId string

            The ID of the user that owns the target of this action.

          • Copy linkcreatedAt string<date-time>

            Time when this action was created

          • Copy linkupdatedAt string<date-time>

            Time when this action was last updated

          • Copy linkcompletedAt string<date-time> or null

            Time when the action transitioned to a non-pending state.

          • Copy linkstate string

            The real-time status of an action executed on a target.

            • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
            • CONFIRMED: Successful transition of the target to the desired state.
            • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
            • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

            Possible enum values:

              PENDINGCONFIRMEDFAILEDCANCELLED
          • Copy linktargetId string

            ID of the entity which this action is controlling.

          • Copy linktargetType string

            Possible enum values:

              vehiclecharger
          • Copy linktargetState object

            Target maximum current for entity

            Show child attributes
            • Copy linktargetState.maxCurrent number

              Desired max current in ampere

          • Copy linkfailureReason object or null

            Information about why was this action not executed successfully.

            Show child attributes
            • Copy linkfailureReason.type string

              A machine-readable high level error category.

              • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
              • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
              • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
              • CONFLICT: A newer action for this device has been created. This action is now abandoned.
              • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
              • NOT_FOUND: The device was deleted while the action was PENDING.

              Possible enum values:

                NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
            • Copy linkfailureReason.detail string

              A human-readable explanation of why the action was unsuccessful.

          Copy linkResponse 400

          A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the charger cannot perform the action.

          Attributes
          • Copy linktype string

            A URI reference that identifies the problem type.

          • Copy linktitle string

            A short, human-readable summary of the problem type.

          • Copy linkdetail string

            A human-readable explanation specific to this occurrence of the problem.

          • Copy linkissues array of object

            A list of validation issues which occurred while validating some component of the network payload.

            Show child attributes
            Was this section helpful?

            Set charge rate limitBeta

            POST /chargers/{chargerId}/charge-rate-limit

            Sets the charge rate limit for a charger in kW. Creates an Action that retries until the charger's chargeRateLimit matches the target value. Setting chargeRateLimit also changes maxCurrent.

            Only one Action can be active per charger - creating a new one cancels the previous action (state: CANCELLED). The Action must complete before sending further commands. Track transitions via the user:vendor-action:updated webhook or Get Charger ActionAPI.

            We recommend updating this setting no more than once every 15 minutes. Frequent changes to the charge rate limit may cause the vehicle to interrupt the charging session.

            Copy linkRequest

            Path parameters
            Copy linkchargerId string Required

            ID of the Charger.

            Attributes
            • Copy linkchargeRateLimit number Required

              Desired charge rate limit in kilowatts (kW)

            Copy linkResponse 200

            Attributes
            • Copy linkid string<uuid>

              The ID of the action.

            • Copy linkuserId string

              The ID of the user that owns the target of this action.

            • Copy linkcreatedAt string<date-time>

              Time when this action was created

            • Copy linkupdatedAt string<date-time>

              Time when this action was last updated

            • Copy linkcompletedAt string<date-time> or null

              Time when the action transitioned to a non-pending state.

            • Copy linkstate string

              The real-time status of an action executed on a target.

              • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
              • CONFIRMED: Successful transition of the target to the desired state.
              • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
              • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

              Possible enum values:

                PENDINGCONFIRMEDFAILEDCANCELLED
            • Copy linktargetId string

              ID of the entity which this action is controlling.

            • Copy linktargetType string

              Possible enum values:

                vehiclecharger
            • Copy linktargetState object

              Target charge rate limit for charger

              Show child attributes
              • Copy linktargetState.chargeRateLimit number

                Desired charge rate limit in kilowatts (kW)

            • Copy linkfailureReason object or null

              Information about why was this action not executed successfully.

              Show child attributes
              • Copy linkfailureReason.type string

                A machine-readable high level error category.

                • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                • NOT_FOUND: The device was deleted while the action was PENDING.

                Possible enum values:

                  NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
              • Copy linkfailureReason.detail string

                A human-readable explanation of why the action was unsuccessful.

            Copy linkResponse 400

            A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the charger cannot perform the action.

            Attributes
            • Copy linktype string

              A URI reference that identifies the problem type.

            • Copy linktitle string

              A short, human-readable summary of the problem type.

            • Copy linkdetail string

              A human-readable explanation specific to this occurrence of the problem.

            • Copy linkissues array of object

              A list of validation issues which occurred while validating some component of the network payload.

              Show child attributes
              Was this section helpful?

              Get charger action

              GET /chargers/actions/{actionId}

              Returns the current state of the requested Action.

              Copy linkRequest

              Path parameters
              Copy linkactionId string<uuid> Required

              ID of the Action.

              Copy linkResponse 200

              Attributes
              • Copy linkid string<uuid>

                The ID of the action.

              • Copy linkuserId string

                The ID of the user that owns the target of this action.

              • Copy linkcreatedAt string<date-time>

                Time when this action was created

              • Copy linkupdatedAt string<date-time>

                Time when this action was last updated

              • Copy linkcompletedAt string<date-time> or null

                Time when the action transitioned to a non-pending state.

              • Copy linkstate string

                The real-time status of an action executed on a target.

                • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                • CONFIRMED: Successful transition of the target to the desired state.
                • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                Possible enum values:

                  PENDINGCONFIRMEDFAILEDCANCELLED
              • Copy linktargetId string

                ID of the target which this action is controlling.

              • Copy linktargetType string

                Possible enum values:

                  vehiclecharger
              • Copy linkkind string

                Possible enum values:

                  STARTSTOP
              • Copy linkfailureReason object or null

                Information about why was this action not executed successfully.

                Show child attributes
                • Copy linkfailureReason.type string

                  A machine-readable high level error category.

                  • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                  • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                  • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                  • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                  • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                  • NOT_FOUND: The device was deleted while the action was PENDING.

                  Possible enum values:

                    NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                • Copy linkfailureReason.detail string

                  A human-readable explanation of why the action was unsuccessful.

              Copy linkResponse 404

              Action not found.

              Was this section helpful?

              Cancel charger action

              POST /chargers/actions/{actionId}/cancel

              Cancels a pending Action, halting any further attempts by Enode to execute it.

              Note: This only updates the Action's status to CANCELLED within Enode and does not reflect a change in the vendor's cloud. Thus any pending Action in the vendor's cloud might still be executed.

              Copy linkRequest

              Path parameters
              Copy linkactionId string<uuid> Required

              ID of the Action.

              Copy linkResponse 200

              Attributes
              • Copy linkid string<uuid>

                The ID of the action.

              • Copy linkuserId string

                The ID of the user that owns the target of this action.

              • Copy linkcreatedAt string<date-time>

                Time when this action was created

              • Copy linkupdatedAt string<date-time>

                Time when this action was last updated

              • Copy linkcompletedAt string<date-time> or null

                Time when the action transitioned to a non-pending state.

              • Copy linkstate string

                The real-time status of an action executed on a target.

                • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                • CONFIRMED: Successful transition of the target to the desired state.
                • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                Possible enum values:

                  PENDINGCONFIRMEDFAILEDCANCELLED
              • Copy linktargetId string

                ID of the target which this action is controlling.

              • Copy linktargetType string

                Possible enum values:

                  vehiclecharger
              • Copy linkkind string

                Possible enum values:

                  STARTSTOP
              • Copy linkfailureReason object or null

                Information about why was this action not executed successfully.

                Show child attributes
                • Copy linkfailureReason.type string

                  A machine-readable high level error category.

                  • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                  • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                  • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                  • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                  • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                  • NOT_FOUND: The device was deleted while the action was PENDING.

                  Possible enum values:

                    NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                • Copy linkfailureReason.detail string

                  A human-readable explanation of why the action was unsuccessful.

              Copy linkResponse 404

              Action not found.

              Copy linkResponse 409

              Action already in a resolved state.

              Attributes
              • Copy linkid string<uuid>

                The ID of the action.

              • Copy linkuserId string

                The ID of the user that owns the target of this action.

              • Copy linkcreatedAt string<date-time>

                Time when this action was created

              • Copy linkupdatedAt string<date-time>

                Time when this action was last updated

              • Copy linkcompletedAt string<date-time> or null

                Time when the action transitioned to a non-pending state.

              • Copy linkstate string

                The real-time status of an action executed on a target.

                • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                • CONFIRMED: Successful transition of the target to the desired state.
                • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                Possible enum values:

                  PENDINGCONFIRMEDFAILEDCANCELLED
              • Copy linktargetId string

                ID of the target which this action is controlling.

              • Copy linktargetType string

                Possible enum values:

                  vehiclecharger
              • Copy linkkind string

                Possible enum values:

                  STARTSTOP
              • Copy linkfailureReason object or null

                Information about why was this action not executed successfully.

                Show child attributes
                • Copy linkfailureReason.type string

                  A machine-readable high level error category.

                  • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                  • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                  • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                  • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                  • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                  • NOT_FOUND: The device was deleted while the action was PENDING.

                  Possible enum values:

                    NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                • Copy linkfailureReason.detail string

                  A human-readable explanation of why the action was unsuccessful.

              Was this section helpful?

              Refresh charger data

              POST /chargers/{chargerId}/refresh-hint

              Use this endpoint to initiate an expedited data refresh for the specified charger.

              Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
              This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

              Copy linkRequest

              Path parameters
              Copy linkchargerId string Required

              ID of the Charger.

              Copy linkResponse 204

              Refresh hint registered successfully.

              Copy linkResponse 404

              The specified charger was not found.

              Was this section helpful?

              Batteries

              The Battery object represents a residential energy storage unit, like a Tesla Powerwall or Enphase IQ. It offers detailed insights into the battery's operation and allows you to instruct the battery on handling its stored energy.

              List batteriesBeta

              GET /batteries

              Returns a paginated list of all Batteries.

              Copy linkRequest

              Query parameters
              Copy linkafter string Optional

              Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

              Copy linkbefore string Optional

              Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

              Copy linkpageSize integer Optional

              Number of records to return per page. Default page size is 50.

              Copy linkResponse 200

              Attributes
              • Copy linkdata array of object

                Paginated list of batteries

                Show child attributes
                • Copy linkdata[].id string<uuid>

                  Unique identifier for the battery object

                • Copy linkdata[].userId string

                  The ID of the user that linked this battery.

                • Copy linkdata[].vendor string

                  Machine-friendly name of the vendor. Use this in API requests.

                  Possible enum values:

                    ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                • Copy linkdata[].lastSeen string<date-time>

                  The last time Enode successfully communicated with the vendor or when the battery was initially linked.

                • Copy linkdata[].isReachable boolean

                  Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

                • Copy linkdata[].chargeState object

                  Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linkdata[].chargeState.status string or null

                    The power delivery state of the battery.

                    Possible enum values:

                      CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                  • Copy linkdata[].chargeState.batteryCapacity number or null

                    Battery capacity in kWh.

                  • Copy linkdata[].chargeState.batteryLevel number or null

                    Remaining battery charge level in percent.

                  • Copy linkdata[].chargeState.chargeRate number or null

                    The current charge rate in kW. A positive value indicates that the battery is charging.

                  • Copy linkdata[].chargeState.dischargeLimit number or null

                    Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                  • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

                    Time of last received charge state update

                • Copy linkdata[].config object
                  Show child attributes
                  • Copy linkdata[].config.operationMode string or null

                    The current operation mode of the battery.

                    • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                    • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                    • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                    • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                    Possible enum values:

                      IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                  • Copy linkdata[].config.lastUpdated string<date-time> or null

                    Time of last received configuration update

                • Copy linkdata[].information object

                  Descriptive information about the battery

                  Show child attributes
                  • Copy linkdata[].information.id string

                    Battery vendor ID

                  • Copy linkdata[].information.brand string

                    A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                  • Copy linkdata[].information.model string

                    Battery model

                  • Copy linkdata[].information.siteName string

                    Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                  • Copy linkdata[].information.installationDate string<date-time>

                    Battery installation date

                • Copy linkdata[].capabilities object

                  A collection of descriptors that describe the capabilities of this specific battery

                  Show child attributes
                  • Copy linkdata[].capabilities.exportFocus object
                    Show child attributes
                    • Copy linkdata[].capabilities.exportFocus.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.exportFocus.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.importFocus object
                    Show child attributes
                    • Copy linkdata[].capabilities.importFocus.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.importFocus.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.timeOfUse object
                    Show child attributes
                    • Copy linkdata[].capabilities.timeOfUse.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.timeOfUse.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.selfReliance object
                    Show child attributes
                    • Copy linkdata[].capabilities.selfReliance.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.selfReliance.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.idle object
                    Show child attributes
                    • Copy linkdata[].capabilities.idle.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.idle.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkdata[].scopes array of string

                  Scopes that the user has granted for this battery.

                • Copy linkdata[].location object

                  Battery's GPS coordinates

                  Show child attributes
                  • Copy linkdata[].location.id string<uuid> or null

                    ID of the location the battery is currently positioned at (if any).

                  • Copy linkdata[].location.longitude number or null

                    Longitude in degrees

                  • Copy linkdata[].location.latitude number or null

                    Latitude in degrees

                  • Copy linkdata[].location.lastUpdated string<date-time> or null

                    Time of last received location state update

                • Copy linkdata[].hemSystemId string<uuid> or null

                  ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

              • Copy linkpagination object

                Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                Show child attributes
              Was this section helpful?

              List user batteriesBeta

              GET /users/{userId}/batteries

              Returns a paginated list of batteries for the given userId.

              Copy linkRequest

              Path parameters
              Copy linkuserId string Required

              ID of the User.

              Query parameters
              Copy linkafter string Optional

              Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

              Copy linkbefore string Optional

              Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

              Copy linkpageSize integer Optional

              Number of records to return per page. Default page size is 50.

              Copy linkResponse 200

              Attributes
              • Copy linkdata array of object

                Paginated list of batteries

                Show child attributes
                • Copy linkdata[].id string<uuid>

                  Unique identifier for the battery object

                • Copy linkdata[].userId string

                  The ID of the user that linked this battery.

                • Copy linkdata[].vendor string

                  Machine-friendly name of the vendor. Use this in API requests.

                  Possible enum values:

                    ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                • Copy linkdata[].lastSeen string<date-time>

                  The last time Enode successfully communicated with the vendor or when the battery was initially linked.

                • Copy linkdata[].isReachable boolean

                  Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

                • Copy linkdata[].chargeState object

                  Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linkdata[].chargeState.status string or null

                    The power delivery state of the battery.

                    Possible enum values:

                      CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                  • Copy linkdata[].chargeState.batteryCapacity number or null

                    Battery capacity in kWh.

                  • Copy linkdata[].chargeState.batteryLevel number or null

                    Remaining battery charge level in percent.

                  • Copy linkdata[].chargeState.chargeRate number or null

                    The current charge rate in kW. A positive value indicates that the battery is charging.

                  • Copy linkdata[].chargeState.dischargeLimit number or null

                    Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                  • Copy linkdata[].chargeState.lastUpdated string<date-time> or null

                    Time of last received charge state update

                • Copy linkdata[].config object
                  Show child attributes
                  • Copy linkdata[].config.operationMode string or null

                    The current operation mode of the battery.

                    • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                    • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                    • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                    • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                    Possible enum values:

                      IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                  • Copy linkdata[].config.lastUpdated string<date-time> or null

                    Time of last received configuration update

                • Copy linkdata[].information object

                  Descriptive information about the battery

                  Show child attributes
                  • Copy linkdata[].information.id string

                    Battery vendor ID

                  • Copy linkdata[].information.brand string

                    A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                  • Copy linkdata[].information.model string

                    Battery model

                  • Copy linkdata[].information.siteName string

                    Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                  • Copy linkdata[].information.installationDate string<date-time>

                    Battery installation date

                • Copy linkdata[].capabilities object

                  A collection of descriptors that describe the capabilities of this specific battery

                  Show child attributes
                  • Copy linkdata[].capabilities.exportFocus object
                    Show child attributes
                    • Copy linkdata[].capabilities.exportFocus.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.exportFocus.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.importFocus object
                    Show child attributes
                    • Copy linkdata[].capabilities.importFocus.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.importFocus.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.timeOfUse object
                    Show child attributes
                    • Copy linkdata[].capabilities.timeOfUse.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.timeOfUse.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.selfReliance object
                    Show child attributes
                    • Copy linkdata[].capabilities.selfReliance.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.selfReliance.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].capabilities.idle object
                    Show child attributes
                    • Copy linkdata[].capabilities.idle.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkdata[].capabilities.idle.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkdata[].scopes array of string

                  Scopes that the user has granted for this battery.

                • Copy linkdata[].location object

                  Battery's GPS coordinates

                  Show child attributes
                  • Copy linkdata[].location.id string<uuid> or null

                    ID of the location the battery is currently positioned at (if any).

                  • Copy linkdata[].location.longitude number or null

                    Longitude in degrees

                  • Copy linkdata[].location.latitude number or null

                    Latitude in degrees

                  • Copy linkdata[].location.lastUpdated string<date-time> or null

                    Time of last received location state update

                • Copy linkdata[].hemSystemId string<uuid> or null

                  ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

              • Copy linkpagination object

                Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                Show child attributes
              Was this section helpful?

              Get batteryBeta

              GET /batteries/{batteryId}

              Copy linkRequest

              Path parameters
              Copy linkbatteryId string<uuid> Required

              The ID of the battery to look up.

              Copy linkResponse 200

              Attributes
              • Copy linkid string<uuid>

                Unique identifier for the battery object

              • Copy linkuserId string

                The ID of the user that linked this battery.

              • Copy linkvendor string

                Machine-friendly name of the vendor. Use this in API requests.

                Possible enum values:

                  ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
              • Copy linklastSeen string<date-time>

                The last time Enode successfully communicated with the vendor or when the battery was initially linked.

              • Copy linkisReachable boolean

                Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

              • Copy linkchargeState object

                Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                Show child attributes
                • Copy linkchargeState.status string or null

                  The power delivery state of the battery.

                  Possible enum values:

                    CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                • Copy linkchargeState.batteryCapacity number or null

                  Battery capacity in kWh.

                • Copy linkchargeState.batteryLevel number or null

                  Remaining battery charge level in percent.

                • Copy linkchargeState.chargeRate number or null

                  The current charge rate in kW. A positive value indicates that the battery is charging.

                • Copy linkchargeState.dischargeLimit number or null

                  Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                • Copy linkchargeState.lastUpdated string<date-time> or null

                  Time of last received charge state update

              • Copy linkconfig object
                Show child attributes
                • Copy linkconfig.operationMode string or null

                  The current operation mode of the battery.

                  • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                  • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                  • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                  • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                  • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                  • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                  Possible enum values:

                    IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                • Copy linkconfig.lastUpdated string<date-time> or null

                  Time of last received configuration update

              • Copy linkinformation object

                Descriptive information about the battery

                Show child attributes
                • Copy linkinformation.id string

                  Battery vendor ID

                • Copy linkinformation.brand string

                  A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                • Copy linkinformation.model string

                  Battery model

                • Copy linkinformation.siteName string

                  Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                • Copy linkinformation.installationDate string<date-time>

                  Battery installation date

              • Copy linkcapabilities object

                A collection of descriptors that describe the capabilities of this specific battery

                Show child attributes
                • Copy linkcapabilities.exportFocus object
                  Show child attributes
                  • Copy linkcapabilities.exportFocus.isCapable boolean

                    The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                  • Copy linkcapabilities.exportFocus.interventionIds array of string

                    IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkcapabilities.importFocus object
                  Show child attributes
                  • Copy linkcapabilities.importFocus.isCapable boolean

                    The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                  • Copy linkcapabilities.importFocus.interventionIds array of string

                    IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkcapabilities.timeOfUse object
                  Show child attributes
                  • Copy linkcapabilities.timeOfUse.isCapable boolean

                    The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                  • Copy linkcapabilities.timeOfUse.interventionIds array of string

                    IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkcapabilities.selfReliance object
                  Show child attributes
                  • Copy linkcapabilities.selfReliance.isCapable boolean

                    The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                  • Copy linkcapabilities.selfReliance.interventionIds array of string

                    IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linkcapabilities.idle object
                  Show child attributes
                  • Copy linkcapabilities.idle.isCapable boolean

                    The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                  • Copy linkcapabilities.idle.interventionIds array of string

                    IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

              • Copy linkscopes array of string

                Scopes that the user has granted for this battery.

              • Copy linklocation object

                Battery's GPS coordinates

                Show child attributes
                • Copy linklocation.id string<uuid> or null

                  ID of the location the battery is currently positioned at (if any).

                • Copy linklocation.longitude number or null

                  Longitude in degrees

                • Copy linklocation.latitude number or null

                  Latitude in degrees

                • Copy linklocation.lastUpdated string<date-time> or null

                  Time of last received location state update

              • Copy linkhemSystemId string<uuid> or null

                ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

              Was this section helpful?

              Set operation mode for batteryBeta

              POST /batteries/{batteryId}/operation-mode

              Request an operationMode change for a battery. This request creates an Action that will retry until the battery's operationMode matches the expected value. The Action must complete before any further commands can be sent to the battery. Only one Action can be active for a specific battery at a time. If a new Action is created, the previous Action will be automatically cancelled and transitioned to the CANCELLED state. Regardless of operation mode, the battery's charge limit will not fall below dischargeLimit except in emergency power situations. Transitions can be tracked via the user:vendor-action:updated webhook event or Get Operation Mode ActionAPI.

              Copy linkRequest

              Path parameters
              Copy linkbatteryId string<uuid> Required

              The ID of the battery being targeted.

              Attributes
              • Copy linkoperationMode string Required

                Desired operation mode of the battery.

                • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.

                Possible enum values:

                  IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLE

              Copy linkResponse 200

              Attributes
              • Copy linkid string<uuid>

                The ID of the action.

              • Copy linkuserId string

                The ID of the user that owns the target of this action.

              • Copy linkcreatedAt string<date-time>

                Time when this action was created

              • Copy linkupdatedAt string<date-time>

                Time when this action was last updated

              • Copy linkcompletedAt string<date-time> or null

                Time when the action transitioned to a non-pending state.

              • Copy linkstate string

                The real-time status of an action executed on a target.

                • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                • CONFIRMED: Successful transition of the target to the desired state.
                • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                Possible enum values:

                  PENDINGCONFIRMEDFAILEDCANCELLED
              • Copy linktargetId string

                ID of the battery which this action is controlling.

              • Copy linktargetType string

                Possible enum values:

                  battery
              • Copy linktargetState object

                Target battery operation mode

                Show child attributes
                • Copy linktargetState.operationMode string

                  Desired operation mode of the battery.

                  • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                  • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                  • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                  • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                  • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.

                  Possible enum values:

                    IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLE
              • Copy linkfailureReason object or null

                Information about why was this action not executed successfully.

                Show child attributes
                • Copy linkfailureReason.type string

                  A machine-readable high level error category.

                  • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                  • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                  • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                  • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                  • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                  • NOT_FOUND: The device was deleted while the action was PENDING.

                  Possible enum values:

                    NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                • Copy linkfailureReason.detail string

                  A human-readable explanation of why the action was unsuccessful.

              Copy linkResponse 400

              A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the battery cannot perform the action.

              Attributes
              • Copy linktype string

                A URI reference that identifies the problem type.

              • Copy linktitle string

                A short, human-readable summary of the problem type.

              • Copy linkdetail string

                A human-readable explanation specific to this occurrence of the problem.

              • Copy linkissues array of object

                A list of validation issues which occurred while validating some component of the network payload.

                Show child attributes
                Was this section helpful?

                Get operation mode actionBeta

                GET /batteries/actions/{actionId}

                Returns the current state of the requested Action.

                Copy linkRequest

                Path parameters
                Copy linkactionId string<uuid> Required

                ID of the Action.

                Copy linkResponse 200

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the battery which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    battery
                • Copy linktargetState object

                  Target battery operation mode

                  Show child attributes
                  • Copy linktargetState.operationMode string

                    Desired operation mode of the battery.

                    • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                    • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                    • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.

                    Possible enum values:

                      IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLE
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Copy linkResponse 404

                Action not found.

                Was this section helpful?

                Cancel battery actionBeta

                POST /batteries/actions/{actionId}/cancel

                Cancels a pending battery Action, halting any further attempts by Enode to execute it.

                Note: This only updates the Action's status to CANCELLED within Enode and does not reflect a change in the vendor's cloud. Thus any pending Action in the vendor's cloud might still be executed.

                Copy linkRequest

                Path parameters
                Copy linkactionId string<uuid> Required

                ID of the Action.

                Copy linkResponse 200

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the battery which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    battery
                • Copy linktargetState object

                  Target battery operation mode

                  Show child attributes
                  • Copy linktargetState.operationMode string

                    Desired operation mode of the battery.

                    • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                    • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                    • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.

                    Possible enum values:

                      IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLE
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Copy linkResponse 404

                Action not found.

                Copy linkResponse 409

                Action already in a resolved state and can therefore not be cancelled.

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linktargetId string

                  ID of the battery which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    battery
                • Copy linktargetState object

                  Target battery operation mode

                  Show child attributes
                  • Copy linktargetState.operationMode string

                    Desired operation mode of the battery.

                    • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                    • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                    • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                    • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.

                    Possible enum values:

                      IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLE
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    CONFIRMEDFAILEDCANCELLED
                Was this section helpful?

                Refresh battery dataBeta

                POST /batteries/{batteryId}/refresh-hint

                Use this endpoint to initiate an expedited data refresh for the specified battery.

                Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
                This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

                Copy linkRequest

                Path parameters
                Copy linkbatteryId string<uuid> Required

                The ID of the battery being targeted.

                Copy linkResponse 204

                Refresh hint registered successfully.

                Copy linkResponse 404

                The specified battery was not found.

                Was this section helpful?

                HVAC

                HVAC units (heaters, heat pumps, air conditioning, thermostats, etc.) are controlled by altering the mode & target setpoints. This can be done directly using the Set Permanent HoldAPI endpoint or Return to ScheduleAPI.

                List HVAC units

                GET /hvacs

                Paginated list of HVAC units

                Copy linkRequest

                Query parameters
                Copy linkafter string Optional

                Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                Copy linkbefore string Optional

                Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                Copy linkpageSize integer Optional

                Number of records to return per page. Default page size is 50.

                Copy linkResponse 200

                Attributes
                • Copy linkdata array of object

                  List of paginated HVAC units

                  Show child attributes
                  • Copy linkdata[].id string

                    HVAC unit ID

                  • Copy linkdata[].userId string

                    The ID of the user that linked this hvac.

                  • Copy linkdata[].vendor string

                    Machine-friendly name of the vendor. Use this in API requests.

                    Possible enum values:

                      TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                  • Copy linkdata[].lastSeen string<date-time>

                    The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                  • Copy linkdata[].isReachable boolean

                    Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                  • Copy linkdata[].consumptionRate number or null

                    The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                  • Copy linkdata[].information object

                    Descriptive information about the HVAC unit

                    Show child attributes
                    • Copy linkdata[].information.brand string

                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                    • Copy linkdata[].information.model string or null

                      Device model name

                    • Copy linkdata[].information.displayName string

                      Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                    • Copy linkdata[].information.groupName string or null

                      Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                    • Copy linkdata[].information.category string

                      Classification of the connected HVAC device.

                      • HEATING: A direct heating device, such as an electric panel heater

                      • COOLING: A direct cooling device, such as an air conditioner

                      • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                      • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                      Possible enum values:

                        HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                  • Copy linkdata[].temperatureState object

                    Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                    Show child attributes
                    • Copy linkdata[].temperatureState.currentTemperature number or null

                      Current air temperature reported by device in degrees Celsius.

                    • Copy linkdata[].temperatureState.isActive boolean

                      Whether the HVAC unit is actively heating or cooling.

                    • Copy linkdata[].temperatureState.lastUpdated string<date-time> or null

                      Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                  • Copy linkdata[].thermostatState object

                    Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                    Show child attributes
                    • Copy linkdata[].thermostatState.mode string

                      The current state of the HVAC unit.

                      • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                      • OFF: The HVAC unit is turned off.
                      • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                      • COOL: The HVAC unit will only cool to the given setpoint.
                      • HEAT: The HVAC unit will only heat to the given setpoint

                      Possible enum values:

                        UNKNOWNOFFAUTOCOOLHEAT
                    • Copy linkdata[].thermostatState.heatSetpoint number or null

                      If mode allows, heat when currentTemperature falls below this point.

                    • Copy linkdata[].thermostatState.coolSetpoint number or null

                      If mode allows, cool when currentTemperature rises above this point.

                    • Copy linkdata[].thermostatState.holdType string or null

                      The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                      Possible enum values:

                        PERMANENTSCHEDULED
                    • Copy linkdata[].thermostatState.lastUpdated string<date-time> or null

                      Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                  • Copy linkdata[].scopes array of string

                    Scopes that the user has granted for this HVAC unit.

                  • Copy linkdata[].capabilities object

                    An object describing valid states for this HVAC unit.

                    Show child attributes
                    • Copy linkdata[].capabilities.capableModes array of string or null

                      A list of valid modes for this HVAC unit.

                    • Copy linkdata[].capabilities.coolSetpointRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.coolSetpointRange.min number or null

                        The minimum allowable temperature, inclusive.

                      • Copy linkdata[].capabilities.coolSetpointRange.max number or null

                        The maximum allowable temperature, inclusive.

                    • Copy linkdata[].capabilities.heatSetpointRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.heatSetpointRange.min number or null

                        The minimum allowable temperature, inclusive.

                      • Copy linkdata[].capabilities.heatSetpointRange.max number or null

                        The maximum allowable temperature, inclusive.

                    • Copy linkdata[].capabilities.setpointDifferenceRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.setpointDifferenceRange.min number or null

                        The minimum allowable difference, inclusive.

                      • Copy linkdata[].capabilities.setpointDifferenceRange.max number or null

                        The maximum allowable difference, inclusive.

                    • Copy linkdata[].capabilities.setFollowSchedule object
                      Show child attributes
                      • Copy linkdata[].capabilities.setFollowSchedule.isCapable boolean

                        The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                      • Copy linkdata[].capabilities.setFollowSchedule.interventionIds array of string

                        IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                    • Copy linkdata[].capabilities.setPermanentHold object
                      Show child attributes
                      • Copy linkdata[].capabilities.setPermanentHold.isCapable boolean

                        The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                      • Copy linkdata[].capabilities.setPermanentHold.interventionIds array of string

                        IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].location object
                    Show child attributes
                    • Copy linkdata[].location.id string<uuid> or null

                      ID of the charging location the HVAC unit is housed at (if any)

                • Copy linkpagination object

                  Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                  Show child attributes
                Was this section helpful?

                List user HVAC units

                GET /users/{userId}/hvacs

                Paginated list of HVAC units for the given User

                Copy linkRequest

                Path parameters
                Copy linkuserId string Required

                ID of the User.

                Query parameters
                Copy linkafter string Optional

                Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                Copy linkbefore string Optional

                Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                Copy linkpageSize integer Optional

                Number of records to return per page. Default page size is 50.

                Copy linkResponse 200

                Attributes
                • Copy linkdata array of object

                  List of paginated HVAC units

                  Show child attributes
                  • Copy linkdata[].id string

                    HVAC unit ID

                  • Copy linkdata[].userId string

                    The ID of the user that linked this hvac.

                  • Copy linkdata[].vendor string

                    Machine-friendly name of the vendor. Use this in API requests.

                    Possible enum values:

                      TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                  • Copy linkdata[].lastSeen string<date-time>

                    The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                  • Copy linkdata[].isReachable boolean

                    Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                  • Copy linkdata[].consumptionRate number or null

                    The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                  • Copy linkdata[].information object

                    Descriptive information about the HVAC unit

                    Show child attributes
                    • Copy linkdata[].information.brand string

                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                    • Copy linkdata[].information.model string or null

                      Device model name

                    • Copy linkdata[].information.displayName string

                      Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                    • Copy linkdata[].information.groupName string or null

                      Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                    • Copy linkdata[].information.category string

                      Classification of the connected HVAC device.

                      • HEATING: A direct heating device, such as an electric panel heater

                      • COOLING: A direct cooling device, such as an air conditioner

                      • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                      • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                      Possible enum values:

                        HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                  • Copy linkdata[].temperatureState object

                    Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                    Show child attributes
                    • Copy linkdata[].temperatureState.currentTemperature number or null

                      Current air temperature reported by device in degrees Celsius.

                    • Copy linkdata[].temperatureState.isActive boolean

                      Whether the HVAC unit is actively heating or cooling.

                    • Copy linkdata[].temperatureState.lastUpdated string<date-time> or null

                      Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                  • Copy linkdata[].thermostatState object

                    Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                    Show child attributes
                    • Copy linkdata[].thermostatState.mode string

                      The current state of the HVAC unit.

                      • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                      • OFF: The HVAC unit is turned off.
                      • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                      • COOL: The HVAC unit will only cool to the given setpoint.
                      • HEAT: The HVAC unit will only heat to the given setpoint

                      Possible enum values:

                        UNKNOWNOFFAUTOCOOLHEAT
                    • Copy linkdata[].thermostatState.heatSetpoint number or null

                      If mode allows, heat when currentTemperature falls below this point.

                    • Copy linkdata[].thermostatState.coolSetpoint number or null

                      If mode allows, cool when currentTemperature rises above this point.

                    • Copy linkdata[].thermostatState.holdType string or null

                      The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                      Possible enum values:

                        PERMANENTSCHEDULED
                    • Copy linkdata[].thermostatState.lastUpdated string<date-time> or null

                      Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                  • Copy linkdata[].scopes array of string

                    Scopes that the user has granted for this HVAC unit.

                  • Copy linkdata[].capabilities object

                    An object describing valid states for this HVAC unit.

                    Show child attributes
                    • Copy linkdata[].capabilities.capableModes array of string or null

                      A list of valid modes for this HVAC unit.

                    • Copy linkdata[].capabilities.coolSetpointRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.coolSetpointRange.min number or null

                        The minimum allowable temperature, inclusive.

                      • Copy linkdata[].capabilities.coolSetpointRange.max number or null

                        The maximum allowable temperature, inclusive.

                    • Copy linkdata[].capabilities.heatSetpointRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.heatSetpointRange.min number or null

                        The minimum allowable temperature, inclusive.

                      • Copy linkdata[].capabilities.heatSetpointRange.max number or null

                        The maximum allowable temperature, inclusive.

                    • Copy linkdata[].capabilities.setpointDifferenceRange object or null
                      Show child attributes
                      • Copy linkdata[].capabilities.setpointDifferenceRange.min number or null

                        The minimum allowable difference, inclusive.

                      • Copy linkdata[].capabilities.setpointDifferenceRange.max number or null

                        The maximum allowable difference, inclusive.

                    • Copy linkdata[].capabilities.setFollowSchedule object
                      Show child attributes
                      • Copy linkdata[].capabilities.setFollowSchedule.isCapable boolean

                        The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                      • Copy linkdata[].capabilities.setFollowSchedule.interventionIds array of string

                        IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                    • Copy linkdata[].capabilities.setPermanentHold object
                      Show child attributes
                      • Copy linkdata[].capabilities.setPermanentHold.isCapable boolean

                        The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                      • Copy linkdata[].capabilities.setPermanentHold.interventionIds array of string

                        IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkdata[].location object
                    Show child attributes
                    • Copy linkdata[].location.id string<uuid> or null

                      ID of the charging location the HVAC unit is housed at (if any)

                • Copy linkpagination object

                  Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                  Show child attributes
                Was this section helpful?

                Set location for an HVAC unit

                PUT /hvacs/{hvacId}

                Update the locationId field on an HVAC unit.

                Copy linkRequest

                Path parameters
                Copy linkhvacId string Required

                ID of the HVAC unit.

                Attributes
                • Copy linklocationId string<uuid> or null Required

                Copy linkResponse 200

                Successfully updated HVAC unit

                Attributes
                • Copy linkid string

                  HVAC unit ID

                • Copy linkuserId string

                  The ID of the user that linked this hvac.

                • Copy linkvendor string

                  Machine-friendly name of the vendor. Use this in API requests.

                  Possible enum values:

                    TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                • Copy linklastSeen string<date-time>

                  The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                • Copy linkisReachable boolean

                  Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                • Copy linkconsumptionRate number or null

                  The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                • Copy linkinformation object

                  Descriptive information about the HVAC unit

                  Show child attributes
                  • Copy linkinformation.brand string

                    A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                  • Copy linkinformation.model string or null

                    Device model name

                  • Copy linkinformation.displayName string

                    Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                  • Copy linkinformation.groupName string or null

                    Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                  • Copy linkinformation.category string

                    Classification of the connected HVAC device.

                    • HEATING: A direct heating device, such as an electric panel heater

                    • COOLING: A direct cooling device, such as an air conditioner

                    • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                    • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                    Possible enum values:

                      HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                • Copy linktemperatureState object

                  Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linktemperatureState.currentTemperature number or null

                    Current air temperature reported by device in degrees Celsius.

                  • Copy linktemperatureState.isActive boolean

                    Whether the HVAC unit is actively heating or cooling.

                  • Copy linktemperatureState.lastUpdated string<date-time> or null

                    Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                • Copy linkthermostatState object

                  Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linkthermostatState.mode string

                    The current state of the HVAC unit.

                    • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                    • OFF: The HVAC unit is turned off.
                    • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                    • COOL: The HVAC unit will only cool to the given setpoint.
                    • HEAT: The HVAC unit will only heat to the given setpoint

                    Possible enum values:

                      UNKNOWNOFFAUTOCOOLHEAT
                  • Copy linkthermostatState.heatSetpoint number or null

                    If mode allows, heat when currentTemperature falls below this point.

                  • Copy linkthermostatState.coolSetpoint number or null

                    If mode allows, cool when currentTemperature rises above this point.

                  • Copy linkthermostatState.holdType string or null

                    The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                    Possible enum values:

                      PERMANENTSCHEDULED
                  • Copy linkthermostatState.lastUpdated string<date-time> or null

                    Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                • Copy linkscopes array of string

                  Scopes that the user has granted for this HVAC unit.

                • Copy linkcapabilities object

                  An object describing valid states for this HVAC unit.

                  Show child attributes
                  • Copy linkcapabilities.capableModes array of string or null

                    A list of valid modes for this HVAC unit.

                  • Copy linkcapabilities.coolSetpointRange object or null
                    Show child attributes
                    • Copy linkcapabilities.coolSetpointRange.min number or null

                      The minimum allowable temperature, inclusive.

                    • Copy linkcapabilities.coolSetpointRange.max number or null

                      The maximum allowable temperature, inclusive.

                  • Copy linkcapabilities.heatSetpointRange object or null
                    Show child attributes
                    • Copy linkcapabilities.heatSetpointRange.min number or null

                      The minimum allowable temperature, inclusive.

                    • Copy linkcapabilities.heatSetpointRange.max number or null

                      The maximum allowable temperature, inclusive.

                  • Copy linkcapabilities.setpointDifferenceRange object or null
                    Show child attributes
                    • Copy linkcapabilities.setpointDifferenceRange.min number or null

                      The minimum allowable difference, inclusive.

                    • Copy linkcapabilities.setpointDifferenceRange.max number or null

                      The maximum allowable difference, inclusive.

                  • Copy linkcapabilities.setFollowSchedule object
                    Show child attributes
                    • Copy linkcapabilities.setFollowSchedule.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkcapabilities.setFollowSchedule.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkcapabilities.setPermanentHold object
                    Show child attributes
                    • Copy linkcapabilities.setPermanentHold.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkcapabilities.setPermanentHold.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linklocation object
                  Show child attributes
                  • Copy linklocation.id string<uuid> or null

                    ID of the charging location the HVAC unit is housed at (if any)

                Was this section helpful?

                Get HVAC unit

                GET /hvacs/{hvacId}

                Copy linkRequest

                Path parameters
                Copy linkhvacId string Required

                ID of the HVAC unit.

                Copy linkResponse 200

                Attributes
                • Copy linkid string

                  HVAC unit ID

                • Copy linkuserId string

                  The ID of the user that linked this hvac.

                • Copy linkvendor string

                  Machine-friendly name of the vendor. Use this in API requests.

                  Possible enum values:

                    TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                • Copy linklastSeen string<date-time>

                  The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                • Copy linkisReachable boolean

                  Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                • Copy linkconsumptionRate number or null

                  The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                • Copy linkinformation object

                  Descriptive information about the HVAC unit

                  Show child attributes
                  • Copy linkinformation.brand string

                    A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                  • Copy linkinformation.model string or null

                    Device model name

                  • Copy linkinformation.displayName string

                    Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                  • Copy linkinformation.groupName string or null

                    Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                  • Copy linkinformation.category string

                    Classification of the connected HVAC device.

                    • HEATING: A direct heating device, such as an electric panel heater

                    • COOLING: A direct cooling device, such as an air conditioner

                    • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                    • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                    Possible enum values:

                      HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                • Copy linktemperatureState object

                  Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linktemperatureState.currentTemperature number or null

                    Current air temperature reported by device in degrees Celsius.

                  • Copy linktemperatureState.isActive boolean

                    Whether the HVAC unit is actively heating or cooling.

                  • Copy linktemperatureState.lastUpdated string<date-time> or null

                    Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                • Copy linkthermostatState object

                  Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                  Show child attributes
                  • Copy linkthermostatState.mode string

                    The current state of the HVAC unit.

                    • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                    • OFF: The HVAC unit is turned off.
                    • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                    • COOL: The HVAC unit will only cool to the given setpoint.
                    • HEAT: The HVAC unit will only heat to the given setpoint

                    Possible enum values:

                      UNKNOWNOFFAUTOCOOLHEAT
                  • Copy linkthermostatState.heatSetpoint number or null

                    If mode allows, heat when currentTemperature falls below this point.

                  • Copy linkthermostatState.coolSetpoint number or null

                    If mode allows, cool when currentTemperature rises above this point.

                  • Copy linkthermostatState.holdType string or null

                    The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                    Possible enum values:

                      PERMANENTSCHEDULED
                  • Copy linkthermostatState.lastUpdated string<date-time> or null

                    Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                • Copy linkscopes array of string

                  Scopes that the user has granted for this HVAC unit.

                • Copy linkcapabilities object

                  An object describing valid states for this HVAC unit.

                  Show child attributes
                  • Copy linkcapabilities.capableModes array of string or null

                    A list of valid modes for this HVAC unit.

                  • Copy linkcapabilities.coolSetpointRange object or null
                    Show child attributes
                    • Copy linkcapabilities.coolSetpointRange.min number or null

                      The minimum allowable temperature, inclusive.

                    • Copy linkcapabilities.coolSetpointRange.max number or null

                      The maximum allowable temperature, inclusive.

                  • Copy linkcapabilities.heatSetpointRange object or null
                    Show child attributes
                    • Copy linkcapabilities.heatSetpointRange.min number or null

                      The minimum allowable temperature, inclusive.

                    • Copy linkcapabilities.heatSetpointRange.max number or null

                      The maximum allowable temperature, inclusive.

                  • Copy linkcapabilities.setpointDifferenceRange object or null
                    Show child attributes
                    • Copy linkcapabilities.setpointDifferenceRange.min number or null

                      The minimum allowable difference, inclusive.

                    • Copy linkcapabilities.setpointDifferenceRange.max number or null

                      The maximum allowable difference, inclusive.

                  • Copy linkcapabilities.setFollowSchedule object
                    Show child attributes
                    • Copy linkcapabilities.setFollowSchedule.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkcapabilities.setFollowSchedule.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                  • Copy linkcapabilities.setPermanentHold object
                    Show child attributes
                    • Copy linkcapabilities.setPermanentHold.isCapable boolean

                      The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                    • Copy linkcapabilities.setPermanentHold.interventionIds array of string

                      IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                • Copy linklocation object
                  Show child attributes
                  • Copy linklocation.id string<uuid> or null

                    ID of the charging location the HVAC unit is housed at (if any)

                Was this section helpful?

                Get action

                GET /hvacs/actions/{actionId}

                Returns the current state of the requested action.

                Copy linkRequest

                Path parameters
                Copy linkactionId string<uuid> Required

                ID of the Action.

                Copy linkResponse 200

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the entity asset (HVAC) which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    hvac
                • Copy linktarget
                  Show child attributes
                  • Copy linktarget.coolSetpoint number
                  • Copy linktarget.mode string

                    Possible enum values:

                      COOL
                  • Copy linktarget.holdType string

                    Possible enum values:

                      PERMANENT
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Copy linkResponse 404

                Action not found.

                Was this section helpful?

                Cancel HVAC action

                POST /hvacs/actions/{actionId}/cancel

                Cancels a pending HVAC action, halting any further attempts by Enode to execute it.

                Note: This only updates the action's status to CANCELLED within Enode and does not reflect a change in the vendor's cloud. Thus any pending action in the vendor's cloud might still be executed.

                Copy linkRequest

                Path parameters
                Copy linkactionId string<uuid> Required

                ID of the Action.

                Copy linkResponse 200

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the entity asset (HVAC) which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    hvac
                • Copy linktarget
                  Show child attributes
                  • Copy linktarget.coolSetpoint number
                  • Copy linktarget.mode string

                    Possible enum values:

                      COOL
                  • Copy linktarget.holdType string

                    Possible enum values:

                      PERMANENT
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Copy linkResponse 404

                Action not found.

                Copy linkResponse 409

                Action already in a resolved state.

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the entity asset (HVAC) which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    hvac
                • Copy linktarget
                  Show child attributes
                  • Copy linktarget.coolSetpoint number
                  • Copy linktarget.mode string

                    Possible enum values:

                      COOL
                  • Copy linktarget.holdType string

                    Possible enum values:

                      PERMANENT
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Was this section helpful?

                Set HVAC unit to follow device schedule

                POST /hvacs/{hvacId}/follow-schedule

                Tell an HVAC unit to follow the schedule set on the device. Only available if the target's capabilities.setFollowSchedule.isCapable is set to true. This endpoint can be used to cancel permanent holds. We retry sending the command until the HVAC unit's fields transition to the expected values. Note that this request will complete before any commands are sent to the HVAC unit. You may react to transitions by listening for the user:vendor-action:updated webhook event or polling the HVAC action endpointAPI.

                Copy linkRequest

                Path parameters
                Copy linkhvacId string Required

                ID of the HVAC unit.

                Copy linkResponse 200

                Resulting HVAC action

                Attributes
                • Copy linkid string<uuid>

                  The ID of the action.

                • Copy linkuserId string

                  The ID of the user that owns the target of this action.

                • Copy linkcreatedAt string<date-time>

                  Time when this action was created

                • Copy linkupdatedAt string<date-time>

                  Time when this action was last updated

                • Copy linkcompletedAt string<date-time> or null

                  Time when the action transitioned to a non-pending state.

                • Copy linkstate string

                  The real-time status of an action executed on a target.

                  • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                  • CONFIRMED: Successful transition of the target to the desired state.
                  • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                  • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                  Possible enum values:

                    PENDINGCONFIRMEDFAILEDCANCELLED
                • Copy linktargetId string

                  ID of the entity asset (HVAC) which this action is controlling.

                • Copy linktargetType string

                  Possible enum values:

                    hvac
                • Copy linktarget object
                  Show child attributes
                  • Copy linktarget.holdType string

                    Possible enum values:

                      SCHEDULED
                • Copy linkfailureReason object or null

                  Information about why was this action not executed successfully.

                  Show child attributes
                  • Copy linkfailureReason.type string

                    A machine-readable high level error category.

                    • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                    • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                    • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                    • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                    • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                    • NOT_FOUND: The device was deleted while the action was PENDING.

                    Possible enum values:

                      NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                  • Copy linkfailureReason.detail string

                    A human-readable explanation of why the action was unsuccessful.

                Copy linkResponse 400

                A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the HVAC unit cannot perform the action.

                Attributes
                • Copy linktype string

                  A URI reference that identifies the problem type.

                • Copy linktitle string

                  A short, human-readable summary of the problem type.

                • Copy linkdetail string

                  A human-readable explanation specific to this occurrence of the problem.

                • Copy linkissues array of object

                  A list of validation issues which occurred while validating some component of the network payload.

                  Show child attributes

                  Copy linkResponse 422

                  HVAC unit controlled by an Enode Schedule

                  Attributes
                  • Copy linktype string

                    A URI reference that identifies the problem type.

                  • Copy linktitle string

                    A short, human-readable summary of the problem type.

                  • Copy linkdetail string

                    A human-readable explanation specific to this occurrence of the problem.

                  • Copy linkissues array of object

                    A list of validation issues which occurred while validating some component of the network payload.

                    Show child attributes
                    Was this section helpful?

                    Refresh HVAC unit data

                    POST /hvacs/{hvacId}/refresh-hint

                    Use this endpoint to initiate an expedited data refresh for the specified HVAC unit.

                    Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
                    This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

                    Copy linkRequest

                    Path parameters
                    Copy linkhvacId string Required

                    ID of the HVAC unit.

                    Copy linkResponse 204

                    Refresh hint registered successfully.

                    Copy linkResponse 404

                    The specified hvac was not found.

                    Was this section helpful?

                    Set HVAC unit mode as permanent hold

                    POST /hvacs/{hvacId}/permanent-hold

                    Tell an HVAC unit to enter a permanent hold. Only available if the target's capabilities.setPermanentHold.isCapable is set to true. We retry sending the command until the HVAC unit's target field transition to the expected value. Note that this request will complete before any commands are sent to the HVAC unit. You may react to transitions by listening for the user:vendor-action:updated webhook event or polling the HVAC action endpointAPI.

                    Copy linkRequest

                    Path parameters
                    Copy linkhvacId string Required

                    ID of the HVAC unit.

                    Attributes
                    • Copy linkcoolSetpoint number Required
                    • Copy linkmode string Required

                      Possible enum values:

                        COOL

                    Copy linkResponse 200

                    Resulting action

                    Attributes
                    • Copy linkid string<uuid>

                      The ID of the action.

                    • Copy linkuserId string

                      The ID of the user that owns the target of this action.

                    • Copy linkcreatedAt string<date-time>

                      Time when this action was created

                    • Copy linkupdatedAt string<date-time>

                      Time when this action was last updated

                    • Copy linkcompletedAt string<date-time> or null

                      Time when the action transitioned to a non-pending state.

                    • Copy linkstate string

                      The real-time status of an action executed on a target.

                      • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                      • CONFIRMED: Successful transition of the target to the desired state.
                      • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                      • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                      Possible enum values:

                        PENDINGCONFIRMEDFAILEDCANCELLED
                    • Copy linktargetId string

                      ID of the entity asset (HVAC) which this action is controlling.

                    • Copy linktargetType string

                      Possible enum values:

                        hvac
                    • Copy linktarget
                      Show child attributes
                      • Copy linktarget.coolSetpoint number
                      • Copy linktarget.mode string

                        Possible enum values:

                          COOL
                      • Copy linktarget.holdType string

                        Possible enum values:

                          PERMANENT
                    • Copy linkfailureReason object or null

                      Information about why was this action not executed successfully.

                      Show child attributes
                      • Copy linkfailureReason.type string

                        A machine-readable high level error category.

                        • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                        • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                        • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                        • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                        • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                        • NOT_FOUND: The device was deleted while the action was PENDING.

                        Possible enum values:

                          NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                      • Copy linkfailureReason.detail string

                        A human-readable explanation of why the action was unsuccessful.

                    Copy linkResponse 400

                    A precondition check failed that is unlikely to change within the action's timeout window. This occurs if the HVAC unit cannot perform the action or the setpoints are invalid.

                    Attributes
                    • Copy linktype string

                      A URI reference that identifies the problem type.

                    • Copy linktitle string

                      A short, human-readable summary of the problem type.

                    • Copy linkdetail string

                      A human-readable explanation specific to this occurrence of the problem.

                    • Copy linkissues array of object

                      A list of validation issues which occurred while validating some component of the network payload.

                      Show child attributes

                      Copy linkResponse 422

                      HVAC unit controlled by an Enode Schedule

                      Attributes
                      • Copy linktype string

                        A URI reference that identifies the problem type.

                      • Copy linktitle string

                        A short, human-readable summary of the problem type.

                      • Copy linkdetail string

                        A human-readable explanation specific to this occurrence of the problem.

                      • Copy linkissues array of object

                        A list of validation issues which occurred while validating some component of the network payload.

                        Show child attributes
                        Was this section helpful?

                        Solar inverters

                        Solar inverters can be queried for current production state.

                        List solar inverters

                        GET /inverters

                        Returns a paginated list of all available Solar Inverters

                        Copy linkRequest

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of solar inverters

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Solar Inverter ID

                          • Copy linkdata[].userId string

                            The ID of the user that linked this inverter.

                          • Copy linkdata[].vendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                          • Copy linkdata[].lastSeen string<date-time>

                            The last time Enode received live data or when the solar inverter was initially linked.

                          • Copy linkdata[].isReachable boolean

                            Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                          • Copy linkdata[].productionState object

                            Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                            Show child attributes
                            • Copy linkdata[].productionState.productionRate number or null

                              The current production rate in kW.

                            • Copy linkdata[].productionState.isProducing boolean or null

                              Whether the solar inverter is actively producing energy or not.

                            • Copy linkdata[].productionState.totalLifetimeProduction number or null

                              The total lifetime production in kWh.

                            • Copy linkdata[].productionState.lastUpdated string<date-time> or null

                              Time of last received production state update

                          • Copy linkdata[].timezone string or null

                            IANA TZ database timezone name representing the location of this inverter.

                          • Copy linkdata[].capabilities object

                            A collection of descriptors that describe the capabilities of this specific inverter.

                            Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                            Show child attributes
                            • Copy linkdata[].capabilities.productionState object
                              Show child attributes
                              • Copy linkdata[].capabilities.productionState.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.productionState.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                            • Copy linkdata[].capabilities.productionStatistics object
                              Show child attributes
                              • Copy linkdata[].capabilities.productionStatistics.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.productionStatistics.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkdata[].scopes array of string

                            Scopes that the user has granted for this inverter.

                          • Copy linkdata[].information object

                            Descriptive information about the solar inverter

                            Show child attributes
                            • Copy linkdata[].information.id string

                              Solar inverter vendor ID

                            • Copy linkdata[].information.sn string or null

                              Solar inverter serial number

                            • Copy linkdata[].information.brand string

                              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                            • Copy linkdata[].information.model string

                              Solar inverter model

                            • Copy linkdata[].information.siteName string

                              Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                            • Copy linkdata[].information.installationDate string<date-time>

                              Solar inverter installation date

                          • Copy linkdata[].location object

                            Solar inverter's GPS coordinates

                            Show child attributes
                            • Copy linkdata[].location.id string<uuid> or null

                              ID of the location the solar inverter is currently positioned at (if any).

                            • Copy linkdata[].location.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].location.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].location.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].hemSystemId string<uuid> or null

                            ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        List user solar inverters

                        GET /users/{userId}/inverters

                        Copy linkRequest

                        Path parameters
                        Copy linkuserId string Required

                        ID of the User.

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of solar inverters

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Solar Inverter ID

                          • Copy linkdata[].userId string

                            The ID of the user that linked this inverter.

                          • Copy linkdata[].vendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                          • Copy linkdata[].lastSeen string<date-time>

                            The last time Enode received live data or when the solar inverter was initially linked.

                          • Copy linkdata[].isReachable boolean

                            Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                          • Copy linkdata[].productionState object

                            Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                            Show child attributes
                            • Copy linkdata[].productionState.productionRate number or null

                              The current production rate in kW.

                            • Copy linkdata[].productionState.isProducing boolean or null

                              Whether the solar inverter is actively producing energy or not.

                            • Copy linkdata[].productionState.totalLifetimeProduction number or null

                              The total lifetime production in kWh.

                            • Copy linkdata[].productionState.lastUpdated string<date-time> or null

                              Time of last received production state update

                          • Copy linkdata[].timezone string or null

                            IANA TZ database timezone name representing the location of this inverter.

                          • Copy linkdata[].capabilities object

                            A collection of descriptors that describe the capabilities of this specific inverter.

                            Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                            Show child attributes
                            • Copy linkdata[].capabilities.productionState object
                              Show child attributes
                              • Copy linkdata[].capabilities.productionState.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.productionState.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                            • Copy linkdata[].capabilities.productionStatistics object
                              Show child attributes
                              • Copy linkdata[].capabilities.productionStatistics.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.productionStatistics.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkdata[].scopes array of string

                            Scopes that the user has granted for this inverter.

                          • Copy linkdata[].information object

                            Descriptive information about the solar inverter

                            Show child attributes
                            • Copy linkdata[].information.id string

                              Solar inverter vendor ID

                            • Copy linkdata[].information.sn string or null

                              Solar inverter serial number

                            • Copy linkdata[].information.brand string

                              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                            • Copy linkdata[].information.model string

                              Solar inverter model

                            • Copy linkdata[].information.siteName string

                              Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                            • Copy linkdata[].information.installationDate string<date-time>

                              Solar inverter installation date

                          • Copy linkdata[].location object

                            Solar inverter's GPS coordinates

                            Show child attributes
                            • Copy linkdata[].location.id string<uuid> or null

                              ID of the location the solar inverter is currently positioned at (if any).

                            • Copy linkdata[].location.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].location.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].location.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].hemSystemId string<uuid> or null

                            ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        Get solar inverter

                        GET /inverters/{inverterId}

                        Copy linkRequest

                        Path parameters
                        Copy linkinverterId string<uuid> Required

                        ID of the solar inverter

                        Copy linkResponse 200

                        Attributes
                        • Copy linkid string<uuid>

                          Solar Inverter ID

                        • Copy linkuserId string

                          The ID of the user that linked this inverter.

                        • Copy linkvendor string

                          Machine-friendly name of the vendor. Use this in API requests.

                          Possible enum values:

                            AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                        • Copy linklastSeen string<date-time>

                          The last time Enode received live data or when the solar inverter was initially linked.

                        • Copy linkisReachable boolean

                          Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                        • Copy linkproductionState object

                          Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                          Show child attributes
                          • Copy linkproductionState.productionRate number or null

                            The current production rate in kW.

                          • Copy linkproductionState.isProducing boolean or null

                            Whether the solar inverter is actively producing energy or not.

                          • Copy linkproductionState.totalLifetimeProduction number or null

                            The total lifetime production in kWh.

                          • Copy linkproductionState.lastUpdated string<date-time> or null

                            Time of last received production state update

                        • Copy linktimezone string or null

                          IANA TZ database timezone name representing the location of this inverter.

                        • Copy linkcapabilities object

                          A collection of descriptors that describe the capabilities of this specific inverter.

                          Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                          Show child attributes
                          • Copy linkcapabilities.productionState object
                            Show child attributes
                            • Copy linkcapabilities.productionState.isCapable boolean

                              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                            • Copy linkcapabilities.productionState.interventionIds array of string

                              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkcapabilities.productionStatistics object
                            Show child attributes
                            • Copy linkcapabilities.productionStatistics.isCapable boolean

                              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                            • Copy linkcapabilities.productionStatistics.interventionIds array of string

                              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                        • Copy linkscopes array of string

                          Scopes that the user has granted for this inverter.

                        • Copy linkinformation object

                          Descriptive information about the solar inverter

                          Show child attributes
                          • Copy linkinformation.id string

                            Solar inverter vendor ID

                          • Copy linkinformation.sn string or null

                            Solar inverter serial number

                          • Copy linkinformation.brand string

                            A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                          • Copy linkinformation.model string

                            Solar inverter model

                          • Copy linkinformation.siteName string

                            Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                          • Copy linkinformation.installationDate string<date-time>

                            Solar inverter installation date

                        • Copy linklocation object

                          Solar inverter's GPS coordinates

                          Show child attributes
                          • Copy linklocation.id string<uuid> or null

                            ID of the location the solar inverter is currently positioned at (if any).

                          • Copy linklocation.longitude number or null

                            Longitude in degrees

                          • Copy linklocation.latitude number or null

                            Latitude in degrees

                          • Copy linklocation.lastUpdated string<date-time> or null

                            Time of last received location state update

                        • Copy linkhemSystemId string<uuid> or null

                          ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        Was this section helpful?

                        Refresh inverter data

                        POST /inverters/{inverterId}/refresh-hint

                        Use this endpoint to initiate an expedited data refresh for the specified inverter.

                        Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
                        This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

                        Copy linkRequest

                        Path parameters
                        Copy linkinverterId string<uuid> Required

                        ID of the solar inverter

                        Copy linkResponse 204

                        Refresh hint registered successfully.

                        Copy linkResponse 404

                        The specified inverter was not found.

                        Was this section helpful?

                        Meters

                        The Meter object represents a unit responsible for measuring energy usage. It provides detailed information about the meter itself and the energy consumption data it records.

                        Get meterBeta

                        GET /meters/{meterId}

                        Copy linkRequest

                        Path parameters
                        Copy linkmeterId string<uuid> Required

                        The ID of the meter you are looking up

                        Copy linkResponse 200

                        Attributes
                        • Copy linkid string<uuid>

                          Unique identifier for the meter object

                        • Copy linkuserId string

                          The ID of the user that linked this meter.

                        • Copy linkvendor string

                          Machine-friendly name of the vendor. Use this in API requests.

                          Possible enum values:

                            ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                        • Copy linklastSeen string<date-time>

                          The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                        • Copy linkisReachable boolean

                          Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                        • Copy linkinformation object

                          Descriptive information about the meter

                          Show child attributes
                          • Copy linkinformation.brand string

                            A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                          • Copy linkinformation.model string

                            Meter model

                          • Copy linkinformation.siteName string

                            Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                          • Copy linkinformation.installationDate string<date-time>

                            Meter installation date

                        • Copy linkenergyState object

                          Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                          Show child attributes
                          • Copy linkenergyState.power number or null

                            The current power measured by the meter in kW.

                            • Positive value: Power is imported from the grid to the site, indicating consumption.
                            • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                          • Copy linkenergyState.lastUpdated string<date-time> or null

                            Time of last received energy state update.

                        • Copy linklocation object

                          Meter's GPS coordinates

                          Show child attributes
                          • Copy linklocation.id string<uuid> or null

                            ID of the location the meter is currently positioned at (if any).

                          • Copy linklocation.longitude number or null

                            Longitude in degrees

                          • Copy linklocation.latitude number or null

                            Latitude in degrees

                          • Copy linklocation.lastUpdated string<date-time> or null

                            Time of last received location state update

                        • Copy linkcapabilities object

                          The specific meter's capabilities for recording energy consumption and production data.

                          Show child attributes
                          • Copy linkcapabilities.measuresConsumption object
                            Show child attributes
                            • Copy linkcapabilities.measuresConsumption.isCapable boolean

                              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                            • Copy linkcapabilities.measuresConsumption.interventionIds array of string

                              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkcapabilities.measuresProduction object
                            Show child attributes
                            • Copy linkcapabilities.measuresProduction.isCapable boolean

                              The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                            • Copy linkcapabilities.measuresProduction.interventionIds array of string

                              IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                        • Copy linkscopes array of string

                          Scopes that the user has granted for this meter.

                        • Copy linkhemSystemId string<uuid> or null

                          ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        Was this section helpful?

                        Refresh meter dataBeta

                        POST /meters/{meterId}/refresh-hint

                        Use this endpoint to initiate an expedited data refresh for the specified meter.

                        Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
                        This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

                        Copy linkRequest

                        Path parameters
                        Copy linkmeterId string<uuid> Required

                        The ID of the meter you are looking up

                        Copy linkResponse 204

                        Refresh hint registered successfully.

                        Copy linkResponse 404

                        The specified meter was not found.

                        Was this section helpful?

                        List user metersBeta

                        GET /users/{userId}/meters

                        Returns a paginated list of meters for the given userId.

                        Copy linkRequest

                        Path parameters
                        Copy linkuserId string Required

                        ID of the User.

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of meters

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Unique identifier for the meter object

                          • Copy linkdata[].userId string

                            The ID of the user that linked this meter.

                          • Copy linkdata[].vendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                          • Copy linkdata[].lastSeen string<date-time>

                            The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                          • Copy linkdata[].isReachable boolean

                            Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                          • Copy linkdata[].information object

                            Descriptive information about the meter

                            Show child attributes
                            • Copy linkdata[].information.brand string

                              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                            • Copy linkdata[].information.model string

                              Meter model

                            • Copy linkdata[].information.siteName string

                              Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                            • Copy linkdata[].information.installationDate string<date-time>

                              Meter installation date

                          • Copy linkdata[].energyState object

                            Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                            Show child attributes
                            • Copy linkdata[].energyState.power number or null

                              The current power measured by the meter in kW.

                              • Positive value: Power is imported from the grid to the site, indicating consumption.
                              • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                            • Copy linkdata[].energyState.lastUpdated string<date-time> or null

                              Time of last received energy state update.

                          • Copy linkdata[].location object

                            Meter's GPS coordinates

                            Show child attributes
                            • Copy linkdata[].location.id string<uuid> or null

                              ID of the location the meter is currently positioned at (if any).

                            • Copy linkdata[].location.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].location.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].location.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].capabilities object

                            The specific meter's capabilities for recording energy consumption and production data.

                            Show child attributes
                            • Copy linkdata[].capabilities.measuresConsumption object
                              Show child attributes
                              • Copy linkdata[].capabilities.measuresConsumption.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.measuresConsumption.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                            • Copy linkdata[].capabilities.measuresProduction object
                              Show child attributes
                              • Copy linkdata[].capabilities.measuresProduction.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.measuresProduction.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkdata[].scopes array of string

                            Scopes that the user has granted for this meter.

                          • Copy linkdata[].hemSystemId string<uuid> or null

                            ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        List metersBeta

                        GET /meters

                        Returns a paginated list of all Meters.

                        Copy linkRequest

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of meters

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Unique identifier for the meter object

                          • Copy linkdata[].userId string

                            The ID of the user that linked this meter.

                          • Copy linkdata[].vendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                          • Copy linkdata[].lastSeen string<date-time>

                            The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                          • Copy linkdata[].isReachable boolean

                            Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                          • Copy linkdata[].information object

                            Descriptive information about the meter

                            Show child attributes
                            • Copy linkdata[].information.brand string

                              A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                            • Copy linkdata[].information.model string

                              Meter model

                            • Copy linkdata[].information.siteName string

                              Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                            • Copy linkdata[].information.installationDate string<date-time>

                              Meter installation date

                          • Copy linkdata[].energyState object

                            Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                            Show child attributes
                            • Copy linkdata[].energyState.power number or null

                              The current power measured by the meter in kW.

                              • Positive value: Power is imported from the grid to the site, indicating consumption.
                              • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                            • Copy linkdata[].energyState.lastUpdated string<date-time> or null

                              Time of last received energy state update.

                          • Copy linkdata[].location object

                            Meter's GPS coordinates

                            Show child attributes
                            • Copy linkdata[].location.id string<uuid> or null

                              ID of the location the meter is currently positioned at (if any).

                            • Copy linkdata[].location.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].location.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].location.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].capabilities object

                            The specific meter's capabilities for recording energy consumption and production data.

                            Show child attributes
                            • Copy linkdata[].capabilities.measuresConsumption object
                              Show child attributes
                              • Copy linkdata[].capabilities.measuresConsumption.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.measuresConsumption.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                            • Copy linkdata[].capabilities.measuresProduction object
                              Show child attributes
                              • Copy linkdata[].capabilities.measuresProduction.isCapable boolean

                                The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                              • Copy linkdata[].capabilities.measuresProduction.interventionIds array of string

                                IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                          • Copy linkdata[].scopes array of string

                            Scopes that the user has granted for this meter.

                          • Copy linkdata[].hemSystemId string<uuid> or null

                            ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        HEM systems

                        HEM Systems (Home Energy Management Systems) track flows between various assets such as solar inverters, batteries, and meters. They provide information and status details for the system and also support historical metrics through statistics for solar generation, household consumption, grid import/export, battery levels, and charge/discharge. Refer to the Guide for details on how to enable this functionality on your account.

                        List HEM systemsBeta

                        GET /hem-systems

                        Returns a paginated list of all HEM Systems.

                        Copy linkRequest

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of HEM systems

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Unique identifier for the HEM System

                          • Copy linkdata[].userId string

                            The ID of the user that linked devices of the solar installation

                          • Copy linkdata[].locationId string<uuid> or null

                            ID of the location the HEM System is associated with

                          • Copy linkdata[].information object
                            Show child attributes
                            • Copy linkdata[].information.vendor string

                              Machine-friendly name of the vendor. Use this in API requests.

                              Possible enum values:

                                SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                            • Copy linkdata[].information.name string

                              Name of the HEM System, as set by the user on the device/vendor.

                            • Copy linkdata[].information.installationDate string<date-time>

                              HEM System installation date

                            • Copy linkdata[].information.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].information.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].information.address string or null

                              Address of the HEM System

                            • Copy linkdata[].information.timezone string or null
                            • Copy linkdata[].information.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].status object

                            Status of the HEM System

                            Show child attributes
                            • Copy linkdata[].status.lastSeen string<date-time> or null

                              The last time Enode successfully communicated with the HEM system.

                            • Copy linkdata[].status.energy object

                              Energy metrics for the HEM System

                              Show child attributes
                              • Copy linkdata[].status.energy.today object

                                Energy metrics for the current day (from midnight to last update seen by Enode)

                                Show child attributes
                                • Copy linkdata[].status.energy.today.generation number or null

                                  Solar generation in kWh

                                • Copy linkdata[].status.energy.today.consumption number or null

                                  Household consumption in kWh

                                • Copy linkdata[].status.energy.today.charge number or null

                                  Battery charge in kWh

                                • Copy linkdata[].status.energy.today.discharge number or null

                                  Battery discharge in kWh

                                • Copy linkdata[].status.energy.today.import number or null

                                  Grid import in kWh

                                • Copy linkdata[].status.energy.today.export number or null

                                  Grid export in kWh

                                • Copy linkdata[].status.energy.today.unit string

                                  Unit of the metrics

                                • Copy linkdata[].status.energy.today.lastUpdated string<date-time> or null

                                  Time of last received metrics update

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        Get HEM system by idBeta

                        GET /hem-systems/{hemSystemId}

                        Returns a single HEM System by ID.

                        Copy linkRequest

                        Path parameters
                        Copy linkhemSystemId string<uuid> Required

                        The ID of the HEM System to look up.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkid string<uuid>

                          Unique identifier for the HEM System

                        • Copy linkuserId string

                          The ID of the user that linked devices of the solar installation

                        • Copy linklocationId string<uuid> or null

                          ID of the location the HEM System is associated with

                        • Copy linkinformation object
                          Show child attributes
                          • Copy linkinformation.vendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                          • Copy linkinformation.name string

                            Name of the HEM System, as set by the user on the device/vendor.

                          • Copy linkinformation.installationDate string<date-time>

                            HEM System installation date

                          • Copy linkinformation.latitude number or null

                            Latitude in degrees

                          • Copy linkinformation.longitude number or null

                            Longitude in degrees

                          • Copy linkinformation.address string or null

                            Address of the HEM System

                          • Copy linkinformation.timezone string or null
                          • Copy linkinformation.lastUpdated string<date-time> or null

                            Time of last received location state update

                        • Copy linkstatus object

                          Status of the HEM System

                          Show child attributes
                          • Copy linkstatus.lastSeen string<date-time> or null

                            The last time Enode successfully communicated with the HEM system.

                          • Copy linkstatus.energy object

                            Energy metrics for the HEM System

                            Show child attributes
                            • Copy linkstatus.energy.today object

                              Energy metrics for the current day (from midnight to last update seen by Enode)

                              Show child attributes
                              • Copy linkstatus.energy.today.generation number or null

                                Solar generation in kWh

                              • Copy linkstatus.energy.today.consumption number or null

                                Household consumption in kWh

                              • Copy linkstatus.energy.today.charge number or null

                                Battery charge in kWh

                              • Copy linkstatus.energy.today.discharge number or null

                                Battery discharge in kWh

                              • Copy linkstatus.energy.today.import number or null

                                Grid import in kWh

                              • Copy linkstatus.energy.today.export number or null

                                Grid export in kWh

                              • Copy linkstatus.energy.today.unit string

                                Unit of the metrics

                              • Copy linkstatus.energy.today.lastUpdated string<date-time> or null

                                Time of last received metrics update

                        Was this section helpful?

                        List HEM systems for userBeta

                        GET /users/{userId}/hem-systems

                        Returns a paginated list of all HEM Systems for a specific user.

                        Copy linkRequest

                        Path parameters
                        Copy linkuserId string Required

                        ID of the User.

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of HEM systems

                          Show child attributes
                          • Copy linkdata[].id string<uuid>

                            Unique identifier for the HEM System

                          • Copy linkdata[].userId string

                            The ID of the user that linked devices of the solar installation

                          • Copy linkdata[].locationId string<uuid> or null

                            ID of the location the HEM System is associated with

                          • Copy linkdata[].information object
                            Show child attributes
                            • Copy linkdata[].information.vendor string

                              Machine-friendly name of the vendor. Use this in API requests.

                              Possible enum values:

                                SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                            • Copy linkdata[].information.name string

                              Name of the HEM System, as set by the user on the device/vendor.

                            • Copy linkdata[].information.installationDate string<date-time>

                              HEM System installation date

                            • Copy linkdata[].information.latitude number or null

                              Latitude in degrees

                            • Copy linkdata[].information.longitude number or null

                              Longitude in degrees

                            • Copy linkdata[].information.address string or null

                              Address of the HEM System

                            • Copy linkdata[].information.timezone string or null
                            • Copy linkdata[].information.lastUpdated string<date-time> or null

                              Time of last received location state update

                          • Copy linkdata[].status object

                            Status of the HEM System

                            Show child attributes
                            • Copy linkdata[].status.lastSeen string<date-time> or null

                              The last time Enode successfully communicated with the HEM system.

                            • Copy linkdata[].status.energy object

                              Energy metrics for the HEM System

                              Show child attributes
                              • Copy linkdata[].status.energy.today object

                                Energy metrics for the current day (from midnight to last update seen by Enode)

                                Show child attributes
                                • Copy linkdata[].status.energy.today.generation number or null

                                  Solar generation in kWh

                                • Copy linkdata[].status.energy.today.consumption number or null

                                  Household consumption in kWh

                                • Copy linkdata[].status.energy.today.charge number or null

                                  Battery charge in kWh

                                • Copy linkdata[].status.energy.today.discharge number or null

                                  Battery discharge in kWh

                                • Copy linkdata[].status.energy.today.import number or null

                                  Grid import in kWh

                                • Copy linkdata[].status.energy.today.export number or null

                                  Grid export in kWh

                                • Copy linkdata[].status.energy.today.unit string

                                  Unit of the metrics

                                • Copy linkdata[].status.energy.today.lastUpdated string<date-time> or null

                                  Time of last received metrics update

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        Refresh HEM system status dataBeta

                        POST /hem-systems/{hemSystemId}/refresh-hint

                        Use this endpoint to initiate an expedited data refresh for the specified HEM System.

                        Note: The Enode platform keeps data automatically up-to-date and detects changes in the OEM APIs within seconds to a few minutes. We change the refresh interval dynamically based on a number of heuristics. This ensures we find the best trade-off between the stability of the connection to the OEM and freshness of the data.
                        This method overrides most of our heuristics and should therefore be used with caution. You may use it when you have a strong reason to believe the data might be stale.

                        Copy linkRequest

                        Path parameters
                        Copy linkhemSystemId string<uuid> Required

                        The ID of the HEM System to look up.

                        Copy linkResponse 204

                        Refresh hint registered successfully.

                        Copy linkResponse 404

                        The specified HEM System was not found.

                        Was this section helpful?

                        Get HEM system statisticsBeta

                        GET /hem-systems/{hemSystemId}/statistics

                        Returns time-bucketed metrics for a specific HEM System, including solar generation, household consumption, grid import/export, battery level, and charge/discharge.

                        The endpoint supports querying by DAY (YYYY-MM-DD), MONTH (YYYY-MM), and YEAR (YYYY) intervals from the system’s installation date up to the current date. DAY queries return the most granular available resolution, MONTH queries report daily buckets, and YEAR queries report monthly buckets. All timestamps are localized to the HEM system’s configured timezone. For energy/power series, buckets < 1 hour (e.g., PT5M, PT15M) report average power (kW); buckets ≥ 1 hour report energy (kWh). When data is not available, isAvailable will be false with a reason. Note: Battery level is only available for DAY interval queries and is reported as state-of-charge (%).

                        Copy linkRequest

                        Path parameters
                        Copy linkhemSystemId string<uuid> Required

                        The ID of the HEM System to look up.

                        Query parameters
                        Copy linkinterval string Required

                        Copy linkResponse 200

                        Attributes
                        • Copy linktimeseries object

                          Collection of all HEM System statistics timeseries

                          Show child attributes
                          • Copy linktimeseries.generation

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.generation.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.generation.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.generation.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.generation.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.generation.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.generation.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.generation.timezone string

                              Timezone of the data

                            • Copy linktimeseries.generation.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.generation.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.generation.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.consumption

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.consumption.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.consumption.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.consumption.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.consumption.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.consumption.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.consumption.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.consumption.timezone string

                              Timezone of the data

                            • Copy linktimeseries.consumption.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.consumption.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.consumption.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.import

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.import.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.import.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.import.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.import.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.import.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.import.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.import.timezone string

                              Timezone of the data

                            • Copy linktimeseries.import.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.import.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.import.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.export

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.export.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.export.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.export.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.export.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.export.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.export.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.export.timezone string

                              Timezone of the data

                            • Copy linktimeseries.export.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.export.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.export.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.charge

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.charge.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.charge.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.charge.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.charge.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.charge.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.charge.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.charge.timezone string

                              Timezone of the data

                            • Copy linktimeseries.charge.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.charge.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.charge.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.discharge

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.discharge.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.discharge.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.discharge.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.discharge.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.discharge.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.discharge.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.discharge.timezone string

                              Timezone of the data

                            • Copy linktimeseries.discharge.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.discharge.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.discharge.data[].v number or null

                                Value of the data point, null if no data available

                          • Copy linktimeseries.batteryLevel

                            HEM System statistics timeseries data

                            Show child attributes
                            • Copy linktimeseries.batteryLevel.isAvailable boolean

                              Indicates that the timeseries data is available

                              Possible enum values:

                                true
                            • Copy linktimeseries.batteryLevel.unit string

                              Unit of measurement for HEM System statistics

                              Possible enum values:

                                kWkWh%
                            • Copy linktimeseries.batteryLevel.unitType string

                              Type of unit for HEM System statistics

                              Possible enum values:

                                EnergyPowerSoC
                            • Copy linktimeseries.batteryLevel.sampling object

                              Sampling configuration for HEM System statistics data

                              Show child attributes
                              • Copy linktimeseries.batteryLevel.sampling.mode string

                                Sampling mode for the data

                                Possible enum values:

                                  bucketed
                              • Copy linktimeseries.batteryLevel.sampling.resolution string

                                Time resolution of the bucketed data in the ISO 8601 format

                                Possible enum values:

                                  PT5MPT10MPT15MPT30MPT1HP1DP1M
                            • Copy linktimeseries.batteryLevel.timezone string

                              Timezone of the data

                            • Copy linktimeseries.batteryLevel.data array of object

                              Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                              Show child attributes
                              • Copy linktimeseries.batteryLevel.data[].t string

                                Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                              • Copy linktimeseries.batteryLevel.data[].v number or null

                                Value of the data point, null if no data available

                        Copy linkResponse 400

                        Bad Request

                        Attributes
                        • Copy linkstatusCode number

                          Possible enum values:

                            400
                        • Copy linkheaders object
                          Show child attributes
                          • Copy linkheaders.content-type string

                            Possible enum values:

                              application/problem+json; charset=utf-8
                        • Copy linkbody object
                          Show child attributes
                          • Copy linkbody.type string

                            Possible enum values:

                              https://developers.enode.com/api/problems/bad-request
                          • Copy linkbody.title string

                            Possible enum values:

                              Bad Request
                          • Copy linkbody.detail string

                            Detailed problem description

                        Copy linkResponse 422

                        HEM System Statistics Not Available

                        Attributes
                        • Copy linkstatusCode number

                          Possible enum values:

                            422
                        • Copy linkheaders object
                          Show child attributes
                          • Copy linkheaders.content-type string

                            Possible enum values:

                              application/problem+json; charset=utf-8
                        • Copy linkbody object
                          Show child attributes
                          • Copy linkbody.type string

                            Possible enum values:

                              https://developers.enode.com/api/problems/hem-system-statistics-not-available
                          • Copy linkbody.title string

                            Possible enum values:

                              HEM System Statistics Not Available
                          • Copy linkbody.detail string

                            Detailed problem description

                        Copy linkResponse 503

                        Vendor Temporarily Unavailable

                        Attributes
                        • Copy linkstatusCode number

                          Possible enum values:

                            503
                        • Copy linkheaders object
                          Show child attributes
                          • Copy linkheaders.content-type string

                            Possible enum values:

                              application/problem+json; charset=utf-8
                          • Copy linkheaders.retry-after number
                        • Copy linkbody object
                          Show child attributes
                          • Copy linkbody.type string

                            Possible enum values:

                              https://developers.enode.com/api/problems/vendor-temporarily-unavailable
                          • Copy linkbody.title string

                            Possible enum values:

                              Vendor Temporarily Unavailable
                          • Copy linkbody.detail string

                            Detailed problem description

                        Was this section helpful?

                        Locations

                        Locations are used to assign devices to a geographical group. This is useful for optimization, as target behavior usually depends on a common locality of demand (charging, heating, cooling, etc.) and supply (tariff, battery, inverter, etc.) of energy.

                        List locations

                        GET /locations

                        Returns a paginated list of all Locations.

                        Copy linkRequest

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of locations

                          Show child attributes
                          • Copy linkdata[].name string

                            User-supplied name for the Location

                          • Copy linkdata[].latitude number

                            Latitude in degrees

                          • Copy linkdata[].longitude number

                            Longitude in degrees

                          • Copy linkdata[].timezoneName string

                            An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                          • Copy linkdata[].id string<uuid>

                            The ID of the Location.

                          • Copy linkdata[].userId string

                            User ID the location belongs to

                          • Copy linkdata[].createdAt string<date-time>

                            Time when the Location was created

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        List user locations

                        GET /users/{userId}/locations

                        Returns a paginated list of Locations for the given user.

                        Copy linkRequest

                        Path parameters
                        Copy linkuserId string Required

                        ID of the User.

                        Query parameters
                        Copy linkafter string Optional

                        Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                        Copy linkbefore string Optional

                        Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                        Copy linkpageSize integer Optional

                        Number of records to return per page. Default page size is 50.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkdata array of object

                          Paginated list of locations

                          Show child attributes
                          • Copy linkdata[].name string

                            User-supplied name for the Location

                          • Copy linkdata[].latitude number

                            Latitude in degrees

                          • Copy linkdata[].longitude number

                            Longitude in degrees

                          • Copy linkdata[].timezoneName string

                            An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                          • Copy linkdata[].id string<uuid>

                            The ID of the Location.

                          • Copy linkdata[].userId string

                            User ID the location belongs to

                          • Copy linkdata[].createdAt string<date-time>

                            Time when the Location was created

                        • Copy linkpagination object

                          Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                          Show child attributes
                        Was this section helpful?

                        Create location

                        POST /users/{userId}/locations

                        Create a Location for a User. Each Location defines a geofence with a 200 m enter radius and a 270 m exit radius. A user's Locations must be at least 200 m apart. The API rejects any new Location whose coordinates fall within the geofence of an existing one.

                        Copy linkRequest

                        Path parameters
                        Copy linkuserId string Required

                        ID of the User.

                        Attributes
                        • Copy linkname string Required

                          User-supplied name for the Location

                        • Copy linklatitude number Required

                          Latitude in degrees

                        • Copy linklongitude number Required

                          Longitude in degrees

                        • Copy linktimezoneName string Optional

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time. Defaults to UTC.

                          Default value: UTC

                        Copy linkResponse 200

                        Created

                        Attributes
                        • Copy linkname string

                          User-supplied name for the Location

                        • Copy linklatitude number

                          Latitude in degrees

                        • Copy linklongitude number

                          Longitude in degrees

                        • Copy linktimezoneName string

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                        • Copy linkid string<uuid>

                          The ID of the Location.

                        • Copy linkuserId string

                          User ID the location belongs to

                        • Copy linkcreatedAt string<date-time>

                          Time when the Location was created

                        Was this section helpful?

                        Get location

                        GET /locations/{locationId}

                        Fetch a Location.

                        Copy linkRequest

                        Path parameters
                        Copy linklocationId string<uuid> Required

                        ID of the Location.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkname string

                          User-supplied name for the Location

                        • Copy linklatitude number

                          Latitude in degrees

                        • Copy linklongitude number

                          Longitude in degrees

                        • Copy linktimezoneName string

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                        • Copy linkid string<uuid>

                          The ID of the Location.

                        • Copy linkuserId string

                          User ID the location belongs to

                        • Copy linkcreatedAt string<date-time>

                          Time when the Location was created

                        Was this section helpful?

                        Delete location

                        DELETE /locations/{locationId}

                        Delete a Location.

                        Copy linkRequest

                        Path parameters
                        Copy linklocationId string<uuid> Required

                        ID of the Location.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkname string

                          User-supplied name for the Location

                        • Copy linklatitude number

                          Latitude in degrees

                        • Copy linklongitude number

                          Longitude in degrees

                        • Copy linktimezoneName string

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                        • Copy linkid string<uuid>

                          The ID of the Location.

                        • Copy linkuserId string

                          User ID the location belongs to

                        • Copy linkcreatedAt string<date-time>

                          Time when the Location was created

                        Was this section helpful?

                        Update location

                        PUT /locations/{locationId}

                        Updates a Location. Note: the API does not re-validate the minimum distance constraint on update. If you move a Location's coordinates, ensure they remain at least 200 m from any other Location belonging to the same user.

                        Copy linkRequest

                        Path parameters
                        Copy linklocationId string<uuid> Required

                        ID of the Location.

                        Attributes
                        • Copy linkname string Optional

                          User-supplied name for the Location

                        • Copy linklatitude number Optional

                          Latitude in degrees

                        • Copy linklongitude number Optional

                          Longitude in degrees

                        • Copy linktimezoneName string Optional

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                        Copy linkResponse 200

                        Attributes
                        • Copy linkname string

                          User-supplied name for the Location

                        • Copy linklatitude number

                          Latitude in degrees

                        • Copy linklongitude number

                          Longitude in degrees

                        • Copy linktimezoneName string

                          An IANA TZ database timezone name. This value will be used to convert rules and deadlines for tariffs, smart charging, and schedules into local time.

                        • Copy linkid string<uuid>

                          The ID of the Location.

                        • Copy linkuserId string

                          User ID the location belongs to

                        • Copy linkcreatedAt string<date-time>

                          Time when the Location was created

                        Was this section helpful?

                        Interventions

                        Endpoints that return information about interventions. More information and examples are available in the Interventions guide.

                        List interventions

                        GET /interventions

                        Returns a list of all supported interventions.

                        The language parameter can be used to specify the language of the resolution title and description.

                        Copy linkRequest

                        Query parameters
                        Copy linklanguage string Optional

                        Preferred BCP47 language code - Request translation for the specified language. Falls back to en-US if not provided or provided language code is unsupported.

                        Possible enum values:

                          en-USen-GBde-DEfr-FRes-ESit-ITja-JPpt-PTlv-LVlt-LTnl-NLnl-BEnb-NOpl-PLsv-SEda-DKfi-FIro-RO
                        Copy linkvendorType string Optional

                        Possible enum values:

                          vehiclechargerhvacinverterbatterymeter
                        Copy linkvendor string Optional

                        Machine-friendly name of the vendor. Use this in API requests.

                        Possible enum values:

                          ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC

                        Copy linkResponse 200

                        Attributes (list of undefined)
                          Was this section helpful?

                          Get intervention

                          GET /interventions/{interventionId}

                          Returns a single intervention.

                          The language parameter can be used to specify the language of the resolution title and description.

                          Copy linkRequest

                          Path parameters
                          Copy linkinterventionId string<uuid> Required

                          ID of the intervention.

                          Query parameters
                          Copy linklanguage string Optional

                          Preferred BCP47 language code - Request translation for the specified language. Falls back to en-US if not provided or provided language code is unsupported.

                          Possible enum values:

                            en-USen-GBde-DEfr-FRes-ESit-ITja-JPpt-PTlv-LVlt-LTnl-NLnl-BEnb-NOpl-PLsv-SEda-DKfi-FIro-RO
                          Copy linkvendorType string Optional

                          Possible enum values:

                            vehiclechargerhvacinverterbatterymeter
                          Copy linkvendor string Optional

                          Machine-friendly name of the vendor. Use this in API requests.

                          Possible enum values:

                            ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC

                          Copy linkResponse 200

                          Attributes
                          • Copy linkid string<uuid>
                          • Copy linkvendor string

                            Machine-friendly name of the vendor. Use this in API requests.

                            Possible enum values:

                              ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC
                          • Copy linkvendorType string

                            Possible enum values:

                              vehiclechargerhvacinverterbatterymeter
                          • Copy linkbrand string

                            A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                          • Copy linkintroducedAt string<date-time>

                            ISO8601 UTC timestamp of when the intervention was introduced.

                          • Copy linkdomain string

                            The domain the intervention is related to. i.e. Is the intervention related to the vendor service account or a setting on the device.

                            Possible enum values:

                              AccountDevice
                          • Copy linkresolution object
                            Show child attributes
                            • Copy linkresolution.title string

                              A localized title for the intervention.

                            • Copy linkresolution.description string

                              A localized description of how to resolve the intervention. Formatted as Markdown.

                            • Copy linkresolution.access string

                              Where the intervention needs to be resolved. i.e. remotely using the vendor's app or directly on the device.

                              Possible enum values:

                                RemotePhysical
                            • Copy linkresolution.agent string

                              Who can resolve the intervention. i.e. a user can resolve the intervention themselves, or a licensed service retailer is needed.

                              Possible enum values:

                                UserThirdParty
                            • Copy linkresolution.action string or null

                              The action to be taken by the user to resolve the intervention, such as relinking their account (Link) or linking an additional asset like a charger (LinkAdditionalAsset). See resolving interventions.

                              Possible enum values:

                                LinkLinkAdditionalAsset

                          Copy linkResponse 404

                          Intervention not found.

                          Was this section helpful?

                          Webhooks

                          Webhooks are a mechanism that allows your server to receive notifications of events from the Enode system.

                          See the related guide for more information about timeouts, failures, and retry logic: Using Webhooks

                          Create webhook

                          POST /webhooks

                          Create a webhook.

                          Copy linkRequest

                          Attributes
                          • Copy linkurl string Required

                            The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                          • Copy linksecret string Required

                            A cryptographically secure secret, generated and provided by your client. Refer to Generating a secret for details on how to do this.

                          • Copy linkevents array of string Optional

                            The events which will trigger the webhook. Available events: *, user:vehicle:discovered, user:vehicle:updated, user:vehicle:deleted, user:vehicle:smart-charging-status-updated, user:charge-action:updated, user:vendor-action:updated, user:schedule:execution-updated, user:charger:discovered, user:charger:updated, user:charger:deleted, user:hvac:discovered, user:hvac:updated, user:hvac:deleted, user:inverter:discovered, user:inverter:updated, user:inverter:deleted, user:inverter:statistics-updated, user:credentials:invalidated, user:battery:discovered, user:battery:updated, user:battery:deleted, enode:webhook:test, user:meter:discovered, user:meter:updated, user:meter:deleted, user:hem-system:discovered, user:hem-system:updated, user:hem-system:deleted, flex:vehicle-policy:created, flex:vehicle-policy:updated, flex:vehicle-policy:deleted, flex:vehicle-policy:status, flex:session:updated

                            Default value: ["*"]

                          • Copy linkapiVersion string or null Optional

                            If provided, webhook payloads will be generated for this version. If not provided or null, the default API version of the client will be used when generating webhook payloads. Valid versions: 2024-10-01

                          • Copy linkauthentication object Optional

                            If provided, the authentication header will be sent with each webhook request.

                            Show child attributes
                            • Copy linkauthentication.headerName string Required

                              Authentication header name.

                            • Copy linkauthentication.headerValue string Required

                              Authentication header value.

                          Copy linkResponse 200

                          Attributes
                          • Copy linkid string

                            Unique identifier for the webhook.

                          • Copy linkurl string

                            The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                          • Copy linkevents array of string

                            The events which will trigger the webhook.

                            Default value: ["*"]

                          • Copy linklastSuccess string<date-time>

                            Time when a delivery to this webhook was last successful.

                          • Copy linkisActive boolean

                            Indicates whether the webhook is active or not.

                          • Copy linkcreatedAt string<date-time>

                            Time when the webhook was created.

                          • Copy linkapiVersion string or null

                            API version of the payload. If null, the default API version of the client will be used when generating webhook payloads.

                          • Copy linkauthentication object or null
                            Show child attributes

                          Copy linkResponse 400

                          Webhook already exists.

                          Attributes
                          • Copy linktype string

                            A URI reference that identifies the problem type.

                          • Copy linktitle string

                            A short, human-readable summary of the problem type.

                          • Copy linkdetail string

                            A human-readable explanation specific to this occurrence of the problem.

                          • Copy linkissues array of object

                            A list of validation issues which occurred while validating some component of the network payload.

                            Show child attributes
                            Was this section helpful?

                            List webhooks

                            GET /webhooks

                            Returns a paginated list of webhooks.

                            Copy linkRequest

                            Query parameters
                            Copy linkafter string Optional

                            Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                            Copy linkbefore string Optional

                            Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                            Copy linkpageSize integer Optional

                            Number of records to return per page. Default page size is 50.

                            Copy linkResponse 200

                            Attributes
                            • Copy linkdata array of object

                              Paginated list of webhooks.

                              Show child attributes
                              • Copy linkdata[].id string

                                Unique identifier for the webhook.

                              • Copy linkdata[].url string

                                The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                              • Copy linkdata[].events array of string

                                The events which will trigger the webhook.

                                Default value: ["*"]

                              • Copy linkdata[].lastSuccess string<date-time>

                                Time when a delivery to this webhook was last successful.

                              • Copy linkdata[].isActive boolean

                                Indicates whether the webhook is active or not.

                              • Copy linkdata[].createdAt string<date-time>

                                Time when the webhook was created.

                              • Copy linkdata[].apiVersion string or null

                                API version of the payload. If null, the default API version of the client will be used when generating webhook payloads.

                              • Copy linkdata[].authentication object or null
                                Show child attributes
                                • Copy linkdata[].authentication.headerName string
                            • Copy linkpagination object

                              Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                              Show child attributes
                            Was this section helpful?

                            Update webhook

                            PATCH /webhooks/{webhookId}

                            Update a webhook.

                            Copy linkRequest

                            Path parameters
                            Copy linkwebhookId string<uuid> Required

                            ID of the Webhook.

                            Attributes
                            • Copy linkurl string Optional

                              The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                            • Copy linksecret string Optional

                              A cryptographically secure secret, generated and provided by your client. Refer to Generating a secret for details on how to do this.

                            • Copy linkevents array of string Optional

                              The events which will trigger the webhook. Available events: *, user:vehicle:discovered, user:vehicle:updated, user:vehicle:deleted, user:vehicle:smart-charging-status-updated, user:charge-action:updated, user:vendor-action:updated, user:schedule:execution-updated, user:charger:discovered, user:charger:updated, user:charger:deleted, user:hvac:discovered, user:hvac:updated, user:hvac:deleted, user:inverter:discovered, user:inverter:updated, user:inverter:deleted, user:inverter:statistics-updated, user:credentials:invalidated, user:battery:discovered, user:battery:updated, user:battery:deleted, enode:webhook:test, user:meter:discovered, user:meter:updated, user:meter:deleted, user:hem-system:discovered, user:hem-system:updated, user:hem-system:deleted, flex:vehicle-policy:created, flex:vehicle-policy:updated, flex:vehicle-policy:deleted, flex:vehicle-policy:status, flex:session:updated

                            • Copy linkapiVersion string or null Optional

                              If provided, webhook payloads will be generated for this version. If not provided or null, the default API version of the client will be used when generating webhook payloads. Valid versions: 2024-10-01

                            • Copy linkauthentication object or null Optional

                              If provided, the authentication header will be sent with each webhook request.

                              Show child attributes
                              • Copy linkauthentication.headerName string Required

                                Authentication header name.

                              • Copy linkauthentication.headerValue string Required

                                Authentication header value.

                            Copy linkResponse 200

                            Attributes
                            • Copy linkid string

                              Unique identifier for the webhook.

                            • Copy linkurl string

                              The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                            • Copy linkevents array of string

                              The events which will trigger the webhook.

                              Default value: ["*"]

                            • Copy linklastSuccess string<date-time>

                              Time when a delivery to this webhook was last successful.

                            • Copy linkisActive boolean

                              Indicates whether the webhook is active or not.

                            • Copy linkcreatedAt string<date-time>

                              Time when the webhook was created.

                            • Copy linkapiVersion string or null

                              API version of the payload. If null, the default API version of the client will be used when generating webhook payloads.

                            • Copy linkauthentication object or null
                              Show child attributes

                            Copy linkResponse 404

                            Webhook not found or already deleted

                            Attributes
                            • Copy linktype string

                              A URI reference that identifies the problem type.

                            • Copy linktitle string

                              A short, human-readable summary of the problem type.

                            • Copy linkdetail string

                              A human-readable explanation specific to this occurrence of the problem.

                            • Copy linkissues array of object

                              A list of validation issues which occurred while validating some component of the network payload.

                              Show child attributes
                              Was this section helpful?

                              Get webhook

                              GET /webhooks/{webhookId}

                              Returns webhook with the given ID, if it exists.

                              Copy linkRequest

                              Path parameters
                              Copy linkwebhookId string<uuid> Required

                              ID of the Webhook.

                              Copy linkResponse 200

                              Attributes
                              • Copy linkid string

                                Unique identifier for the webhook.

                              • Copy linkurl string

                                The HTTPS URL that webhook payloads should be sent to. Must resolve to a public IP address and return a 2xx response directly without redirecting.

                              • Copy linkevents array of string

                                The events which will trigger the webhook.

                                Default value: ["*"]

                              • Copy linklastSuccess string<date-time>

                                Time when a delivery to this webhook was last successful.

                              • Copy linkisActive boolean

                                Indicates whether the webhook is active or not.

                              • Copy linkcreatedAt string<date-time>

                                Time when the webhook was created.

                              • Copy linkapiVersion string or null

                                API version of the payload. If null, the default API version of the client will be used when generating webhook payloads.

                              • Copy linkauthentication object or null
                                Show child attributes

                              Copy linkResponse 404

                              Webhook not found or already deleted

                              Attributes
                              • Copy linktype string

                                A URI reference that identifies the problem type.

                              • Copy linktitle string

                                A short, human-readable summary of the problem type.

                              • Copy linkdetail string

                                A human-readable explanation specific to this occurrence of the problem.

                              • Copy linkissues array of object

                                A list of validation issues which occurred while validating some component of the network payload.

                                Show child attributes
                                Was this section helpful?

                                Delete webhook

                                DELETE /webhooks/{webhookId}

                                Deletes webhook with the given ID, if it exists.

                                Copy linkRequest

                                Path parameters
                                Copy linkwebhookId string<uuid> Required

                                ID of the Webhook.

                                Copy linkResponse 204

                                Successfully deleted

                                Copy linkResponse 404

                                Webhook not found or already deleted

                                Attributes
                                • Copy linktype string

                                  A URI reference that identifies the problem type.

                                • Copy linktitle string

                                  A short, human-readable summary of the problem type.

                                • Copy linkdetail string

                                  A human-readable explanation specific to this occurrence of the problem.

                                • Copy linkissues array of object

                                  A list of validation issues which occurred while validating some component of the network payload.

                                  Show child attributes
                                  Was this section helpful?

                                  Test webhook

                                  POST /webhooks/{webhookId}/test

                                  Send a enode:webhook:test payload to the webhook. If the webhook is inactive, it'll be reactivated on success.

                                  Copy linkRequest

                                  Path parameters
                                  Copy linkwebhookId string<uuid> Required

                                  ID of the Webhook.

                                  Copy linkResponse 200

                                  Attributes
                                  • Copy linkstatus string

                                    Indicates if the test webhook event was delivered successfully to your configured webhook endpoint.

                                    Possible enum values:

                                      SUCCESSFAILURE
                                  • Copy linkdescription string

                                    Human readable description of the test outcome.

                                  • Copy linkresponse object or null

                                    Null if status is FAILURE and no HTTP response was received (e.g. DNS resolution failure or connection error).

                                    Show child attributes
                                    • Copy linkresponse.code number

                                      Status code returned by your configured webhook endpoint

                                    • Copy linkresponse.body string

                                      Body returned by your configured webhook endpoint

                                    • Copy linkresponse.headers array of string or null

                                      Headers returned by your configured webhook endpoint

                                  Copy linkResponse 404

                                  Webhook not found or already deleted

                                  Attributes
                                  • Copy linktype string

                                    A URI reference that identifies the problem type.

                                  • Copy linktitle string

                                    A short, human-readable summary of the problem type.

                                  • Copy linkdetail string

                                    A human-readable explanation specific to this occurrence of the problem.

                                  • Copy linkissues array of object

                                    A list of validation issues which occurred while validating some component of the network payload.

                                    Show child attributes
                                    Was this section helpful?

                                    Service health

                                    Endpoints that return information about the health of Enode and our integrations.

                                    List supported vendors per asset type

                                    GET /integrations

                                    Lists available vendors across asset types. The list of available vendors can be customized in your client. Learn more about vendors requiring activation.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkassetTypes string Optional

                                    Default value: vehicle,charger,hvac,inverter,battery,meter

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkassetTypes array of string
                                    • Copy linkscopes array of string
                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available charger vendors

                                    GET /health/chargers

                                    Lists the available charger vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available vehicle vendors

                                    GET /health/vehicles

                                    Lists the available vehicle vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available battery vendorsBeta

                                    GET /health/batteries

                                    Lists the available battery vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available inverter vendors

                                    GET /health/inverters

                                    Lists the available inverter vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available HVAC vendors

                                    GET /health/hvacs

                                    Lists the available HVAC vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check available meter vendorsBeta

                                    GET /health/meters

                                    Lists the available Meter vendors, including the activated vendors that your client has access to. Learn more about vendors requiring activation.

                                    Copy linkResponse 200

                                    Attributes (list of object)
                                    • Copy linkvendor string

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                                    • Copy linkdisplayName string

                                      A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                    • Copy linkstatus string

                                      Ready-state of the Vendor. Currently always READY.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    • Copy linkportalName string

                                      The name of the first party service or app that the user normally logs into.

                                    • Copy linklinkingStatus string

                                      Ready-state for linking with the Vendor.

                                      • READY: The Vendor is ready to be linked with.
                                      • ELEVATED_ERROR_RATE: Multiple attempts may be needed to link successfully. We are showing a warning in Link UI.
                                      • OUTAGE: The Vendor is currently not available for linking. We will show an error in Link UI and not let the user attempt to link with the Vendor.

                                      Possible enum values:

                                        READYELEVATED_ERROR_RATEOUTAGE
                                    Was this section helpful?

                                    Check service readiness

                                    GET /health/ready

                                    Gets the combined health status of the service and all functionalities and dependencies.

                                    Copy linkResponse 204

                                    All functionalities are operating nominally.

                                    Copy linkResponse 503

                                    At least one functionality of the system is not operating nominally.

                                    Was this section helpful?

                                    Statistics

                                    Endpoints returning timeseries data collected from linked devices.

                                    Get HEM system statisticsBeta

                                    GET /hem-systems/{hemSystemId}/statistics

                                    Returns time-bucketed metrics for a specific HEM System, including solar generation, household consumption, grid import/export, battery level, and charge/discharge.

                                    The endpoint supports querying by DAY (YYYY-MM-DD), MONTH (YYYY-MM), and YEAR (YYYY) intervals from the system’s installation date up to the current date. DAY queries return the most granular available resolution, MONTH queries report daily buckets, and YEAR queries report monthly buckets. All timestamps are localized to the HEM system’s configured timezone. For energy/power series, buckets < 1 hour (e.g., PT5M, PT15M) report average power (kW); buckets ≥ 1 hour report energy (kWh). When data is not available, isAvailable will be false with a reason. Note: Battery level is only available for DAY interval queries and is reported as state-of-charge (%).

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkhemSystemId string<uuid> Required

                                    The ID of the HEM System to look up.

                                    Query parameters
                                    Copy linkinterval string Required

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linktimeseries object

                                      Collection of all HEM System statistics timeseries

                                      Show child attributes
                                      • Copy linktimeseries.generation

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.generation.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.generation.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.generation.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.generation.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.generation.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.generation.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.generation.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.generation.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.generation.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.generation.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.consumption

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.consumption.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.consumption.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.consumption.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.consumption.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.consumption.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.consumption.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.consumption.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.consumption.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.consumption.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.consumption.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.import

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.import.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.import.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.import.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.import.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.import.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.import.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.import.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.import.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.import.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.import.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.export

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.export.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.export.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.export.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.export.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.export.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.export.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.export.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.export.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.export.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.export.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.charge

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.charge.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.charge.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.charge.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.charge.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.charge.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.charge.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.charge.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.charge.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.charge.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.charge.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.discharge

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.discharge.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.discharge.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.discharge.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.discharge.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.discharge.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.discharge.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.discharge.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.discharge.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.discharge.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.discharge.data[].v number or null

                                            Value of the data point, null if no data available

                                      • Copy linktimeseries.batteryLevel

                                        HEM System statistics timeseries data

                                        Show child attributes
                                        • Copy linktimeseries.batteryLevel.isAvailable boolean

                                          Indicates that the timeseries data is available

                                          Possible enum values:

                                            true
                                        • Copy linktimeseries.batteryLevel.unit string

                                          Unit of measurement for HEM System statistics

                                          Possible enum values:

                                            kWkWh%
                                        • Copy linktimeseries.batteryLevel.unitType string

                                          Type of unit for HEM System statistics

                                          Possible enum values:

                                            EnergyPowerSoC
                                        • Copy linktimeseries.batteryLevel.sampling object

                                          Sampling configuration for HEM System statistics data

                                          Show child attributes
                                          • Copy linktimeseries.batteryLevel.sampling.mode string

                                            Sampling mode for the data

                                            Possible enum values:

                                              bucketed
                                          • Copy linktimeseries.batteryLevel.sampling.resolution string

                                            Time resolution of the bucketed data in the ISO 8601 format

                                            Possible enum values:

                                              PT5MPT10MPT15MPT30MPT1HP1DP1M
                                        • Copy linktimeseries.batteryLevel.timezone string

                                          Timezone of the data

                                        • Copy linktimeseries.batteryLevel.data array of object

                                          Timeseries of HEM System statistics per timezone of the system. The first bucket of a day starts at midnight, localtime and the final bucket of a day ends at midnight, local time. Example: For data with a PT5M resolution and a timezone offset of +02:00, the first and last bucket would be 2025-05-05T00:00:00+02:00 and 2025-05-05T23:55:00+02:00.

                                          Show child attributes
                                          • Copy linktimeseries.batteryLevel.data[].t string

                                            Timestamp in RFC 3339 format (minutes ending in 0 or 5, seconds: 00).

                                          • Copy linktimeseries.batteryLevel.data[].v number or null

                                            Value of the data point, null if no data available

                                    Copy linkResponse 400

                                    Bad Request

                                    Attributes
                                    • Copy linkstatusCode number

                                      Possible enum values:

                                        400
                                    • Copy linkheaders object
                                      Show child attributes
                                      • Copy linkheaders.content-type string

                                        Possible enum values:

                                          application/problem+json; charset=utf-8
                                    • Copy linkbody object
                                      Show child attributes
                                      • Copy linkbody.type string

                                        Possible enum values:

                                          https://developers.enode.com/api/problems/bad-request
                                      • Copy linkbody.title string

                                        Possible enum values:

                                          Bad Request
                                      • Copy linkbody.detail string

                                        Detailed problem description

                                    Copy linkResponse 422

                                    HEM System Statistics Not Available

                                    Attributes
                                    • Copy linkstatusCode number

                                      Possible enum values:

                                        422
                                    • Copy linkheaders object
                                      Show child attributes
                                      • Copy linkheaders.content-type string

                                        Possible enum values:

                                          application/problem+json; charset=utf-8
                                    • Copy linkbody object
                                      Show child attributes
                                      • Copy linkbody.type string

                                        Possible enum values:

                                          https://developers.enode.com/api/problems/hem-system-statistics-not-available
                                      • Copy linkbody.title string

                                        Possible enum values:

                                          HEM System Statistics Not Available
                                      • Copy linkbody.detail string

                                        Detailed problem description

                                    Copy linkResponse 503

                                    Vendor Temporarily Unavailable

                                    Attributes
                                    • Copy linkstatusCode number

                                      Possible enum values:

                                        503
                                    • Copy linkheaders object
                                      Show child attributes
                                      • Copy linkheaders.content-type string

                                        Possible enum values:

                                          application/problem+json; charset=utf-8
                                      • Copy linkheaders.retry-after number
                                    • Copy linkbody object
                                      Show child attributes
                                      • Copy linkbody.type string

                                        Possible enum values:

                                          https://developers.enode.com/api/problems/vendor-temporarily-unavailable
                                      • Copy linkbody.title string

                                        Possible enum values:

                                          Vendor Temporarily Unavailable
                                      • Copy linkbody.detail string

                                        Detailed problem description

                                    Was this section helpful?

                                    Tariffs

                                    Tariffs combine a schedule with a set of rates to define the cost of energy usage based on the time of day and day of the week.

                                    List tariffs

                                    GET /flex/tariffs

                                    List all tariffs. Supports pagination.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkafter string Optional

                                    Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                                    Copy linkbefore string Optional

                                    Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                                    Copy linkpageSize integer Optional

                                    Number of records to return per page. Default page size is 50.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linkdata array of object
                                      Show child attributes
                                      • Copy linkdata[].id string

                                        Unique identifier for the tariff.

                                      • Copy linkdata[].direction string

                                        The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                        Possible enum values:

                                          importexport
                                      • Copy linkdata[].currency string

                                        ISO 4217 currency code. Present for tariffs with per 'kWh', absent for scalar tariffs.

                                      • Copy linkdata[].per string

                                        The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                        Possible enum values:

                                          kWhscalar
                                      • Copy linkdata[].createdAt string<date-time>

                                        When the tariff was created.

                                      • Copy linkdata[].updatedAt string<date-time>

                                        When the tariff was last updated.

                                    • Copy linkpagination object

                                      Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                                      Show child attributes
                                    Was this section helpful?

                                    Create tariff

                                    POST /flex/tariffs/{tariffId}

                                    Create a tariff. The tariff ID is client-provided. If a tariff with the same ID and definition already exists, the existing tariff is returned. A newly created tariff is empty — push rate data separately via the timeseries endpoint.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linktariffId string Required

                                    Unique identifier for the tariff.

                                    Attributes
                                    • Copy linkdirection string Required

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string Optional

                                      ISO 4217 currency code. Required when 'per' is 'kWh'. Omit when 'per' is 'scalar'.

                                    • Copy linkper string Required

                                      The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                      Possible enum values:

                                        kWhscalar

                                    Copy linkResponse 200

                                    A tariff with this ID and definition already exists. The existing tariff is returned.

                                    Attributes
                                    • Copy linkid string

                                      Unique identifier for the tariff.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string

                                      ISO 4217 currency code. Present for tariffs with per 'kWh', absent for scalar tariffs.

                                    • Copy linkper string

                                      The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                      Possible enum values:

                                        kWhscalar
                                    • Copy linkcreatedAt string<date-time>

                                      When the tariff was created.

                                    • Copy linkupdatedAt string<date-time>

                                      When the tariff was last updated.

                                    Copy linkResponse 201

                                    Tariff created successfully.

                                    Attributes
                                    • Copy linkid string

                                      Unique identifier for the tariff.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string

                                      ISO 4217 currency code. Present for tariffs with per 'kWh', absent for scalar tariffs.

                                    • Copy linkper string

                                      The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                      Possible enum values:

                                        kWhscalar
                                    • Copy linkcreatedAt string<date-time>

                                      When the tariff was created.

                                    • Copy linkupdatedAt string<date-time>

                                      When the tariff was last updated.

                                    Copy linkResponse 409

                                    A tariff with this ID already exists with a different definition.

                                    Was this section helpful?

                                    Get tariff

                                    GET /flex/tariffs/{tariffId}

                                    Get a tariff by ID.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linktariffId string Required

                                    Unique identifier for the tariff.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linkid string

                                      Unique identifier for the tariff.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string

                                      ISO 4217 currency code. Present for tariffs with per 'kWh', absent for scalar tariffs.

                                    • Copy linkper string

                                      The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                      Possible enum values:

                                        kWhscalar
                                    • Copy linkcreatedAt string<date-time>

                                      When the tariff was created.

                                    • Copy linkupdatedAt string<date-time>

                                      When the tariff was last updated.

                                    Copy linkResponse 404

                                    Tariff not found.

                                    Was this section helpful?

                                    Delete tariff

                                    DELETE /flex/tariffs/{tariffId}

                                    Delete a tariff and all its data. A tariff cannot be deleted if it is referenced by any location's formula.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linktariffId string Required

                                    Unique identifier for the tariff.

                                    Copy linkResponse 204

                                    Tariff deleted successfully.

                                    Copy linkResponse 404

                                    Tariff not found.

                                    Copy linkResponse 409

                                    Tariff is referenced by one or more location formulas and cannot be deleted.

                                    Was this section helpful?

                                    Get tariff timeseries

                                    GET /flex/tariffs/{tariffId}/timeseries

                                    Get a tariff's rate data as a timeseries over a time range. The from and to parameters are local dates. The timezoneName parameter is required to interpret the date boundaries and annotate response values with UTC offsets. The query range must not exceed 90 days. The response is capped at 51840 values; narrow the range if this limit is exceeded.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linktariffId string Required

                                    Unique identifier for the tariff.

                                    Query parameters
                                    Copy linkfrom string<date> Required

                                    Start of the time range (local date). The range from from to to must not exceed 90 days.

                                    Copy linkto string<date> Required

                                    End of the time range (local date).

                                    Copy linktimezoneName string Required

                                    IANA timezone name. Required to interpret the local time boundaries and annotate response values with UTC offsets.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linktariffId string

                                      Unique identifier for the tariff.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string

                                      ISO 4217 currency code. Present for kWh tariffs, absent for scalar tariffs.

                                    • Copy linkper string

                                      The unit of the tariff. 'kWh' indicates a rate in currency per kilowatt-hour (e.g., 0.28 EUR/kWh). 'scalar' indicates a dimensionless multiplier used in formulas (e.g., 1.15 for a 15% markup).

                                      Possible enum values:

                                        kWhscalar
                                    • Copy linkfrom string<date>

                                      Start of the queried time range (local date).

                                    • Copy linkto string<date>

                                      End of the queried time range (local date).

                                    • Copy linktimezoneName string

                                      IANA timezone name used for the query.

                                    • Copy linkvalues array of object

                                      The timeseries values marking rate changes. Each value indicates the rate from that timestamp until the next value (or until 'to'). Values are ordered chronologically.

                                      Show child attributes
                                      • Copy linkvalues[].at string<date-time>

                                        Timezone-aware timestamp when this rate becomes effective. The rate applies from this point until the next value (or until the window end).

                                      • Copy linkvalues[].rate number

                                        The rate value. For kWh tariffs, this is in currency per kilowatt-hour. For scalar tariffs, this is a dimensionless value.

                                    Copy linkResponse 400

                                    Invalid query parameters. Possible reasons: query range exceeds 90 days, invalid date format, or missing required parameters.

                                    Copy linkResponse 404

                                    Tariff not found.

                                    Copy linkResponse 422

                                    The requested range would return too many timeseries points.

                                    Was this section helpful?

                                    Push tariff timeseries data

                                    PUT /flex/tariffs/{tariffId}/timeseries

                                    Push rate data to a tariff. The provided values replace all data in the window [firstValue.at, to). Each value defines a step-function rate from its timestamp until the next value. Values must be strictly ascending by at, and the final value's at must be before to. The first value must be within the current hour or later. Timestamps must be timezone-aware (ISO 8601 with UTC offset). An Idempotency-Key header is required to deduplicate client retries. Completed idempotency records are retained for 24 hours; in-progress locks expire after 3 minutes.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linktariffId string Required

                                    Unique identifier for the tariff.

                                    Header parameters
                                    Copy linkIdempotency-Key string Required

                                    Required key used to deduplicate retries for identical push requests. Completed idempotency records are retained for 24 hours, while in-progress locks expire after 3 minutes.

                                    Attributes
                                    • Copy linkto string<date-time> Required

                                      End of the replacement window (exclusive). All existing data in [firstValue.at, to) is replaced with the provided values. Data outside this window is untouched.

                                    • Copy linkvalues array of object Required

                                      The timeseries values for this window. At least one value is required. Values must be strictly ascending by at (no duplicates), and the final value's at must be before to. Each value defines the rate from its timestamp until the next value (or until 'to'). The first value's 'at' defines the start of the replacement window.

                                      Show child attributes
                                      • Copy linkvalues[].at string<date-time> Required

                                        Timezone-aware timestamp when this rate becomes effective. The rate applies from this point until the next value (or until the window end).

                                      • Copy linkvalues[].rate number Required

                                        The rate value. For kWh tariffs, this is in currency per kilowatt-hour. For scalar tariffs, this is a dimensionless value.

                                    Copy linkResponse 204

                                    Timeseries data replaced successfully.

                                    Copy linkResponse 400

                                    Invalid request. Idempotency-Key may be missing/invalid, values must be strictly ascending by timestamp, the final value must be before to, at least one value is required, timestamps may be invalid, or the first value is before the current hour.

                                    Copy linkResponse 404

                                    Tariff not found.

                                    Copy linkResponse 409

                                    Conflict. The provided Idempotency-Key is currently in use for an in-flight request.

                                    Copy linkResponse 422

                                    Unprocessable Entity. The provided Idempotency-Key has already been used with a different payload.

                                    Copy linkResponse 429

                                    Overwrite budget exceeded. This push would overwrite more existing data points than the 24-hour budget allows.

                                    Was this section helpful?

                                    Get location tariff formula

                                    GET /flex/locations/{locationId}/tariff-formula

                                    Get the tariff formula for a location and direction.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Query parameters
                                    Copy linkdirection string Required

                                    The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                    Possible enum values:

                                      importexport

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linklocationId string<uuid>

                                      The location this formula belongs to.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkvariables object

                                      Maps variable names to tariff IDs. Variables can then be referenced in the formula expression.

                                    • Copy linkformula string

                                      A formula expression that combines tariffs to compute the final rate.

                                      Syntax:

                                      • Variable references: use names defined in the variables mapping (e.g., spot, grid)
                                      • Decimal literals: numbers like 0.03, 1.15 (dimensionless scalars)
                                      • Unit constants: EUR/kWh, USD/kWh, etc. — annotate a number with rate dimension
                                      • Operators: + (add), - (subtract/negate), * (multiply), / (divide)
                                      • Grouping: parentheses for precedence (a + b) * c
                                      • Functions: min(a, b), max(a, b), clamp(x, lo, hi), abs(x), round(x, n)

                                      Dimensional rules:

                                      • The formula must evaluate to a rate (currency/kWh)
                                      • Number literals are scalars — multiply by a unit constant (e.g. EUR/kWh) to create a rate
                                      • Rate +/- Rate → Rate
                                      • Scalar * Rate → Rate
                                      • Rate * Scalar → Rate
                                      • Rate / Scalar → Rate
                                      • Rate / Rate → Scalar
                                      • Scalar * Scalar → Scalar
                                      • Scalar / Scalar → Scalar
                                      • Rate * Rate → Invalid
                                      • Scalar +/- Rate → Invalid
                                      • Scalar / Rate → Invalid

                                      Examples:

                                      • spot — use spot price directly
                                      • 1.15 * spot — 15% markup on spot
                                      • spot / 1000 — convert from MWh to kWh
                                      • clamp(spot, 0 * EUR/kWh, 0.50 * EUR/kWh) — spot price clamped between 0 and 0.50 EUR/kWh
                                      • max(spot, 0 * EUR/kWh) * markup + grid + 0.02 * EUR/kWh — floored spot with markup, grid fee, and margin
                                      • round(spot + grid, 4) — round to 4 decimal places

                                    Copy linkResponse 404

                                    Location or formula not found.

                                    Was this section helpful?

                                    Set location tariff formula

                                    PUT /flex/locations/{locationId}/tariff-formula

                                    Create or replace the tariff formula for a location and direction. The formula defines how tariffs combine to compute the final rate. The API validates formula syntax, confirms the formula evaluates to a rate (currency/kWh), verifies that the variables map and formula references match, and checks that all referenced tariffs exist and share the same currency and direction.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Attributes
                                    • Copy linkdirection string Required

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkvariables object Required

                                      Maps variable names to tariff IDs. Variables can then be referenced in the formula expression.

                                    • Copy linkformula string Required

                                      A formula expression that combines tariffs to compute the final rate.

                                      Syntax:

                                      • Variable references: use names defined in the variables mapping (e.g., spot, grid)
                                      • Decimal literals: numbers like 0.03, 1.15 (dimensionless scalars)
                                      • Unit constants: EUR/kWh, USD/kWh, etc. — annotate a number with rate dimension
                                      • Operators: + (add), - (subtract/negate), * (multiply), / (divide)
                                      • Grouping: parentheses for precedence (a + b) * c
                                      • Functions: min(a, b), max(a, b), clamp(x, lo, hi), abs(x), round(x, n)

                                      Dimensional rules:

                                      • The formula must evaluate to a rate (currency/kWh)
                                      • Number literals are scalars — multiply by a unit constant (e.g. EUR/kWh) to create a rate
                                      • Rate +/- Rate → Rate
                                      • Scalar * Rate → Rate
                                      • Rate * Scalar → Rate
                                      • Rate / Scalar → Rate
                                      • Rate / Rate → Scalar
                                      • Scalar * Scalar → Scalar
                                      • Scalar / Scalar → Scalar
                                      • Rate * Rate → Invalid
                                      • Scalar +/- Rate → Invalid
                                      • Scalar / Rate → Invalid

                                      Examples:

                                      • spot — use spot price directly
                                      • 1.15 * spot — 15% markup on spot
                                      • spot / 1000 — convert from MWh to kWh
                                      • clamp(spot, 0 * EUR/kWh, 0.50 * EUR/kWh) — spot price clamped between 0 and 0.50 EUR/kWh
                                      • max(spot, 0 * EUR/kWh) * markup + grid + 0.02 * EUR/kWh — floored spot with markup, grid fee, and margin
                                      • round(spot + grid, 4) — round to 4 decimal places

                                    Copy linkResponse 200

                                    Formula set successfully.

                                    Attributes
                                    • Copy linklocationId string<uuid>

                                      The location this formula belongs to.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkvariables object

                                      Maps variable names to tariff IDs. Variables can then be referenced in the formula expression.

                                    • Copy linkformula string

                                      A formula expression that combines tariffs to compute the final rate.

                                      Syntax:

                                      • Variable references: use names defined in the variables mapping (e.g., spot, grid)
                                      • Decimal literals: numbers like 0.03, 1.15 (dimensionless scalars)
                                      • Unit constants: EUR/kWh, USD/kWh, etc. — annotate a number with rate dimension
                                      • Operators: + (add), - (subtract/negate), * (multiply), / (divide)
                                      • Grouping: parentheses for precedence (a + b) * c
                                      • Functions: min(a, b), max(a, b), clamp(x, lo, hi), abs(x), round(x, n)

                                      Dimensional rules:

                                      • The formula must evaluate to a rate (currency/kWh)
                                      • Number literals are scalars — multiply by a unit constant (e.g. EUR/kWh) to create a rate
                                      • Rate +/- Rate → Rate
                                      • Scalar * Rate → Rate
                                      • Rate * Scalar → Rate
                                      • Rate / Scalar → Rate
                                      • Rate / Rate → Scalar
                                      • Scalar * Scalar → Scalar
                                      • Scalar / Scalar → Scalar
                                      • Rate * Rate → Invalid
                                      • Scalar +/- Rate → Invalid
                                      • Scalar / Rate → Invalid

                                      Examples:

                                      • spot — use spot price directly
                                      • 1.15 * spot — 15% markup on spot
                                      • spot / 1000 — convert from MWh to kWh
                                      • clamp(spot, 0 * EUR/kWh, 0.50 * EUR/kWh) — spot price clamped between 0 and 0.50 EUR/kWh
                                      • max(spot, 0 * EUR/kWh) * markup + grid + 0.02 * EUR/kWh — floored spot with markup, grid fee, and margin
                                      • round(spot + grid, 4) — round to 4 decimal places

                                    Copy linkResponse 400

                                    Invalid formula. The formula may have syntax errors, reference non-existent tariffs, have invalid dimensional analysis (e.g., adding a scalar to a rate), or reference tariffs with mismatched currencies or directions.

                                    Copy linkResponse 404

                                    Location not found.

                                    Was this section helpful?

                                    Delete location tariff formula

                                    DELETE /flex/locations/{locationId}/tariff-formula

                                    Delete the tariff formula for a location and direction.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Query parameters
                                    Copy linkdirection string Required

                                    The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                    Possible enum values:

                                      importexport

                                    Copy linkResponse 204

                                    Formula deleted successfully.

                                    Copy linkResponse 404

                                    Location or formula not found.

                                    Was this section helpful?

                                    Get resolved tariffs

                                    GET /flex/locations/{locationId}/tariffs/resolved

                                    Evaluate the location's tariff formula over a time range and return the computed rate at each interval. Interval timestamps include UTC offsets for unambiguous DST handling. Unresolved intervals indicate missing tariff data. The query range must not exceed 90 days. Supports cursor pagination with pageSize, after, and before.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Query parameters
                                    Copy linkfrom string<date> Required

                                    Start of the time range to resolve (local date). The range from from to to must not exceed 90 days.

                                    Copy linkto string<date> Required

                                    End of the time range to resolve (local date).

                                    Copy linkdirection string Required

                                    The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                    Possible enum values:

                                      importexport
                                    Copy linkafter string Optional

                                    Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                                    Copy linkbefore string Optional

                                    Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                                    Copy linkpageSize integer Optional

                                    Number of records to return per page. Default page size is 50.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linklocationId string<uuid>

                                      The location these resolved tariffs are for.

                                    • Copy linkdirection string

                                      The direction of energy flow. 'import' is for electricity consumption costs, 'export' is for feed-in/selling electricity back to the grid.

                                      Possible enum values:

                                        importexport
                                    • Copy linkcurrency string

                                      ISO 4217 currency code of the resolved rate.

                                    • Copy linkper string

                                      The energy unit. Resolved tariffs are always rates in currency per kWh.

                                      Possible enum values:

                                        kWh
                                    • Copy linkfrom string<date>

                                      Start of the resolved time range (local date).

                                    • Copy linkto string<date>

                                      End of the resolved time range (local date).

                                    • Copy linktimezoneName string

                                      IANA timezone name used to resolve local date boundaries and annotate interval timestamps.

                                    • Copy linkintervals array

                                      The time intervals with their rates. Intervals are contiguous and non-overlapping. Resolved intervals contain computed rates; unresolved intervals indicate missing data.

                                    • Copy linkpagination object

                                      Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                                      Show child attributes

                                    Copy linkResponse 400

                                    Invalid query parameters.

                                    Copy linkResponse 404

                                    Location not found or no formula configured for the specified direction.

                                    Was this section helpful?

                                    Solar configurations

                                    Solar Configurations describe the physical characteristics of a solar installation. These characteristics are used to forecast solar generation and to enable solar charging of vehicles.

                                    Create solar configuration

                                    POST /solar-configurations

                                    Create a Solar Configuration for a given location. A location may have multiple Solar Configurations to represent individual arrays of panels (for example, varying azimuths or tilt).

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcapacity number Required

                                      Peak capacity in kilowatts (kWp) of the solar system

                                    • Copy linkazimuth number or null Required

                                      Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                    • Copy linktilt number or null Required

                                      Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                    • Copy linkuserId string Required

                                      The userId associated with this solar configuration

                                    • Copy linklocationId string<uuid> Required

                                      The locationId associated with this solar configuration

                                    Copy linkResponse 201

                                    Created

                                    Attributes
                                    • Copy linkcapacity number

                                      Peak capacity in kilowatts (kWp) of the solar system

                                    • Copy linkazimuth number or null

                                      Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                    • Copy linktilt number or null

                                      Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                    • Copy linkid string<uuid>

                                      The ID of this Solar Configuration

                                    • Copy linkuserId string

                                      The userId associated with this solar configuration

                                    • Copy linklocationId string<uuid>

                                      The locationId associated with this solar configuration

                                    • Copy linkcreatedAt string<date-time>

                                      Time when this Solar Configuration was created

                                    • Copy linkupdatedAt string<date-time>

                                      Time when this Solar Configuration was last updated

                                    Copy linkResponse 400

                                    Location does not belong to user

                                    Copy linkResponse 404

                                    User or location not found

                                    Copy linkResponse 409

                                    A solar configuration with the same parameters already exists

                                    Was this section helpful?

                                    List solar configurations

                                    GET /solar-configurations

                                    Returns a paginated list of all Solar Configurations.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkafter string Optional

                                    Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                                    Copy linkbefore string Optional

                                    Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                                    Copy linkpageSize integer Optional

                                    Number of records to return per page. Default page size is 50.

                                    Copy linkuserId string Optional

                                    Filter solar configurations by user ID.

                                    Copy linklocationId string<uuid> Optional

                                    Filter solar configurations by location ID.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linkdata array of object

                                      List of solar configurations

                                      Show child attributes
                                      • Copy linkdata[].capacity number

                                        Peak capacity in kilowatts (kWp) of the solar system

                                      • Copy linkdata[].azimuth number or null

                                        Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                      • Copy linkdata[].tilt number or null

                                        Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                      • Copy linkdata[].id string<uuid>

                                        The ID of this Solar Configuration

                                      • Copy linkdata[].userId string

                                        The userId associated with this solar configuration

                                      • Copy linkdata[].locationId string<uuid>

                                        The locationId associated with this solar configuration

                                      • Copy linkdata[].createdAt string<date-time>

                                        Time when this Solar Configuration was created

                                      • Copy linkdata[].updatedAt string<date-time>

                                        Time when this Solar Configuration was last updated

                                    • Copy linkpagination object

                                      Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                                      Show child attributes

                                    Copy linkResponse 400

                                    Invalid pagination parameters

                                    Was this section helpful?

                                    Get solar configuration

                                    GET /solar-configurations/{solarConfigurationId}

                                    Get a Solar Configuration by ID.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksolarConfigurationId string<uuid> Required

                                    ID of the Solar Configuration.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linkcapacity number

                                      Peak capacity in kilowatts (kWp) of the solar system

                                    • Copy linkazimuth number or null

                                      Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                    • Copy linktilt number or null

                                      Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                    • Copy linkid string<uuid>

                                      The ID of this Solar Configuration

                                    • Copy linkuserId string

                                      The userId associated with this solar configuration

                                    • Copy linklocationId string<uuid>

                                      The locationId associated with this solar configuration

                                    • Copy linkcreatedAt string<date-time>

                                      Time when this Solar Configuration was created

                                    • Copy linkupdatedAt string<date-time>

                                      Time when this Solar Configuration was last updated

                                    Copy linkResponse 404

                                    Solar configuration not found

                                    Was this section helpful?

                                    Update solar configuration

                                    PATCH /solar-configurations/{solarConfigurationId}

                                    Update a Solar Configuration by ID.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksolarConfigurationId string<uuid> Required

                                    ID of the Solar Configuration.

                                    Attributes
                                    • Copy linkcapacity number Optional

                                      Peak capacity in kilowatts (kWp) of the solar system

                                    • Copy linkazimuth number or null Optional

                                      Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                    • Copy linktilt number or null Optional

                                      Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                    Copy linkResponse 200

                                    Attributes
                                    • Copy linkcapacity number

                                      Peak capacity in kilowatts (kWp) of the solar system

                                    • Copy linkazimuth number or null

                                      Compass direction the solar panels face, measured in degrees relative to true north. Valid values are 0–359, where 0 = north, 90 = east, 180 = south, and 270 = west.

                                    • Copy linktilt number or null

                                      Vertical angle of the solar panels in degrees from the horizontal plane. Values range from 0–90, where 0 = horizontal and 90 = vertical.

                                    • Copy linkid string<uuid>

                                      The ID of this Solar Configuration

                                    • Copy linkuserId string

                                      The userId associated with this solar configuration

                                    • Copy linklocationId string<uuid>

                                      The locationId associated with this solar configuration

                                    • Copy linkcreatedAt string<date-time>

                                      Time when this Solar Configuration was created

                                    • Copy linkupdatedAt string<date-time>

                                      Time when this Solar Configuration was last updated

                                    Copy linkResponse 400

                                    Invalid request

                                    Copy linkResponse 404

                                    Solar configuration not found

                                    Was this section helpful?

                                    Delete solar configuration

                                    DELETE /solar-configurations/{solarConfigurationId}

                                    Delete a Solar Configuration by ID.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksolarConfigurationId string<uuid> Required

                                    ID of the Solar Configuration.

                                    Copy linkResponse 204

                                    Successfully deleted

                                    Copy linkResponse 404

                                    Solar configuration not found

                                    Was this section helpful?

                                    Flexible ev charging

                                    Flexible EV Charging allows you to setup constraints for local optimization for your EVs, while providing flexibility to the Flex Shape API.

                                    Create policy

                                    POST /flex/vehicle-policies

                                    Create a new Flexible EV Charging Policy, associated with one location and vehicle pair. Only one policy can be created per unique pair of location and vehicle. A Flex Policy cannot be enabled on a vehicle controlled by other Enode features, like Schedules or Smart Charging.

                                    Creating a Flex Policy will first emit a Flex Policy CreatedAPI, then a Flex Policy StatusAPI event as the Policy Status gets re-calculated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linklocationId string<uuid> Required

                                      The ID of the location at which this policy is applied.

                                    • Copy linkvehicleId string Required

                                      The ID of the vehicle for which this policy applies.

                                    • Copy linkbatteryReserve number Required

                                      Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                    • Copy linkschedule object Required

                                      The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                      Show child attributes
                                      • Copy linkschedule.monday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.monday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.monday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.tuesday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.tuesday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.tuesday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.wednesday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.wednesday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.wednesday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.thursday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.thursday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.thursday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.friday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.friday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.friday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.saturday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.saturday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.saturday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.sunday object Required

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.sunday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.sunday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                    • Copy linkrestrictionSchedule array of object Optional

                                      A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                      Show child attributes
                                      • Copy linkrestrictionSchedule[].type string Required

                                        Extensible enum. The type of restriction. Currently only FULL is supported.

                                      • Copy linkrestrictionSchedule[].weekdays array of integer Required

                                        Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                      • Copy linkrestrictionSchedule[].startTime string Required

                                        Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                      • Copy linkrestrictionSchedule[].endTime string Required

                                        End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 200

                                    Policy created

                                    Attributes
                                    • Copy linkid string

                                      The ID of the flex policy.

                                    • Copy linkvehicleId string

                                      The ID of the vehicle for which this policy applies.

                                    • Copy linklocationId string

                                      The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                    • Copy linkbatteryReserve number

                                      Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                    • Copy linklastObservedLocationChargeLimit number

                                      The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                    • Copy linkschedule object

                                      The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                      Show child attributes
                                      • Copy linkschedule.monday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.monday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.monday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.tuesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.tuesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.tuesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.wednesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.wednesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.wednesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.thursday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.thursday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.thursday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.friday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.friday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.friday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.saturday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.saturday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.saturday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.sunday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.sunday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.sunday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                    • Copy linkrestrictionSchedule array of object

                                      A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                      Show child attributes
                                      • Copy linkrestrictionSchedule[].type string

                                        Extensible enum. The type of restriction. Currently only FULL is supported.

                                      • Copy linkrestrictionSchedule[].weekdays array of integer

                                        Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                      • Copy linkrestrictionSchedule[].startTime string

                                        Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                      • Copy linkrestrictionSchedule[].endTime string

                                        End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 400

                                    Invalid policy configuration

                                    Copy linkResponse 404

                                    Vehicle or location not found

                                    Copy linkResponse 409

                                    A policy already exists for this vehicle and location pair.

                                    Copy linkResponse 422

                                    Vehicle controlled by a Schedule or has active Smart Charging Plan.

                                    Was this section helpful?

                                    List policies

                                    GET /flex/vehicle-policies

                                    Lists all Flexible EV Charging Policies, optionally filtered by location and/or user. See our Pagination documentationAPI for information on how to paginate the results.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkafter string Optional

                                    Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                                    Copy linkbefore string Optional

                                    Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                                    Copy linkpageSize integer Optional

                                    Number of records to return per page. Default page size is 50.

                                    Copy linklocationId string<uuid> Optional
                                    Copy linkuserId string Optional

                                    Copy linkResponse 200

                                    Policies retrieved

                                    Attributes
                                    • Copy linkdata array of object
                                      Show child attributes
                                      • Copy linkdata[].id string

                                        The ID of the flex policy.

                                      • Copy linkdata[].vehicleId string

                                        The ID of the vehicle for which this policy applies.

                                      • Copy linkdata[].locationId string

                                        The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                      • Copy linkdata[].batteryReserve number

                                        Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                      • Copy linkdata[].lastObservedLocationChargeLimit number

                                        The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                      • Copy linkdata[].schedule object

                                        The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                        Show child attributes
                                        • Copy linkdata[].schedule.monday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.monday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.monday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.tuesday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.tuesday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.tuesday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.wednesday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.wednesday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.wednesday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.thursday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.thursday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.thursday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.friday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.friday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.friday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.saturday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.saturday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.saturday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkdata[].schedule.sunday object

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkdata[].schedule.sunday.deadline string

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkdata[].schedule.sunday.minimumChargeTarget number

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkdata[].restrictionSchedule array of object

                                        A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                        Show child attributes
                                        • Copy linkdata[].restrictionSchedule[].type string

                                          Extensible enum. The type of restriction. Currently only FULL is supported.

                                        • Copy linkdata[].restrictionSchedule[].weekdays array of integer

                                          Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                        • Copy linkdata[].restrictionSchedule[].startTime string

                                          Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                        • Copy linkdata[].restrictionSchedule[].endTime string

                                          End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    • Copy linkpagination object

                                      Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                                      Show child attributes

                                    Copy linkResponse 400

                                    Invalid query parameters

                                    Was this section helpful?

                                    Get policy

                                    GET /flex/vehicle-policies/{policyId}

                                    Get a Flexible EV Charging Policy

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkpolicyId string<uuid> Required

                                    The ID of the flex policy.

                                    Copy linkResponse 200

                                    Policy retrieved

                                    Attributes
                                    • Copy linkid string

                                      The ID of the flex policy.

                                    • Copy linkvehicleId string

                                      The ID of the vehicle for which this policy applies.

                                    • Copy linklocationId string

                                      The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                    • Copy linkbatteryReserve number

                                      Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                    • Copy linklastObservedLocationChargeLimit number

                                      The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                    • Copy linkschedule object

                                      The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                      Show child attributes
                                      • Copy linkschedule.monday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.monday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.monday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.tuesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.tuesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.tuesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.wednesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.wednesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.wednesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.thursday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.thursday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.thursday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.friday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.friday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.friday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.saturday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.saturday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.saturday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.sunday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.sunday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.sunday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                    • Copy linkrestrictionSchedule array of object

                                      A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                      Show child attributes
                                      • Copy linkrestrictionSchedule[].type string

                                        Extensible enum. The type of restriction. Currently only FULL is supported.

                                      • Copy linkrestrictionSchedule[].weekdays array of integer

                                        Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                      • Copy linkrestrictionSchedule[].startTime string

                                        Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                      • Copy linkrestrictionSchedule[].endTime string

                                        End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 404

                                    Policy not found

                                    Was this section helpful?

                                    Update policy

                                    PATCH /flex/vehicle-policies/{policyId}

                                    Performs a partial update of a Flexible EV Charging Policy. The update will first emit a Flex Policy UpdatedAPI event, then a Flex Policy StatusAPI event as the Policy Status gets re-calculated.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkpolicyId string<uuid> Required

                                    The ID of the flex policy.

                                    Attributes
                                    • Copy linkbatteryReserve number Optional

                                      Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                    • Copy linkschedule object Optional
                                      Show child attributes
                                      • Copy linkschedule.monday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.monday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.monday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.tuesday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.tuesday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.tuesday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.wednesday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.wednesday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.wednesday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.thursday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.thursday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.thursday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.friday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.friday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.friday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.saturday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.saturday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.saturday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.sunday object Optional

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.sunday.deadline string Required

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.sunday.minimumChargeTarget number Required

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                    • Copy linkrestrictionSchedule array of object Optional

                                      A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                      Show child attributes
                                      • Copy linkrestrictionSchedule[].type string Required

                                        Extensible enum. The type of restriction. Currently only FULL is supported.

                                      • Copy linkrestrictionSchedule[].weekdays array of integer Required

                                        Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                      • Copy linkrestrictionSchedule[].startTime string Required

                                        Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                      • Copy linkrestrictionSchedule[].endTime string Required

                                        End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 200

                                    Policy updated

                                    Attributes
                                    • Copy linkid string

                                      The ID of the flex policy.

                                    • Copy linkvehicleId string

                                      The ID of the vehicle for which this policy applies.

                                    • Copy linklocationId string

                                      The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                    • Copy linkbatteryReserve number

                                      Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                    • Copy linklastObservedLocationChargeLimit number

                                      The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                    • Copy linkschedule object

                                      The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                      Show child attributes
                                      • Copy linkschedule.monday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.monday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.monday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.tuesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.tuesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.tuesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.wednesday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.wednesday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.wednesday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.thursday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.thursday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.thursday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.friday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.friday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.friday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.saturday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.saturday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.saturday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkschedule.sunday object

                                        The schedule settings for a particular day of the week.

                                        Show child attributes
                                        • Copy linkschedule.sunday.deadline string

                                          The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                        • Copy linkschedule.sunday.minimumChargeTarget number

                                          The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                    • Copy linkrestrictionSchedule array of object

                                      A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                      Show child attributes
                                      • Copy linkrestrictionSchedule[].type string

                                        Extensible enum. The type of restriction. Currently only FULL is supported.

                                      • Copy linkrestrictionSchedule[].weekdays array of integer

                                        Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                      • Copy linkrestrictionSchedule[].startTime string

                                        Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                      • Copy linkrestrictionSchedule[].endTime string

                                        End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 400

                                    Invalid policy update

                                    Copy linkResponse 404

                                    Policy not found

                                    Was this section helpful?

                                    Delete policy

                                    DELETE /flex/vehicle-policies/{policyId}

                                    Deletes a Flexible EV Charging Policy. The deletion will first emit a Flex Policy DeletedAPI event, then a Flex Policy StatusAPI event as the Policy Status gets re-calculated.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkpolicyId string<uuid> Required

                                    The ID of the flex policy.

                                    Copy linkResponse 204

                                    Policy deleted

                                    Copy linkResponse 404

                                    Policy not found

                                    Was this section helpful?

                                    Flexible ev charging sessions

                                    Flexible EV Charging Sessions provide visibility into a vehicle's charging session lifecycle, including real-time targets, outcomes, charge blocks, and energy delivery statistics.

                                    List settled sessions

                                    GET /flex/vehicle-policies/sessions

                                    Lists settled Flexible EV Charging Sessions, optionally filtered by policy, location, or vehicle. When filtering by vehicleId, each real-world charging event appears once — the managed session is returned if one exists, otherwise the unmanaged session. See our Pagination documentationAPI for information on how to paginate the results.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkafter string Optional

                                    Opaque cursor used to fetch next page. Cannot be set together with before. Refer to PaginationAPI for more information.

                                    Copy linkbefore string Optional

                                    Opaque cursor used to fetch previous page. Cannot be used together with after. Refer to PaginationAPI for more information.

                                    Copy linkpageSize integer Optional

                                    Number of records to return per page. Default page size is 50.

                                    Copy linkfrom string<date-time> Optional

                                    Return sessions with a pluggedInAt at or after this time.

                                    Copy linkto string<date-time> Optional

                                    Return sessions with a pluggedOutAt at or before this time.

                                    Copy linkpolicyId string<uuid> Optional

                                    Filter sessions by policy ID.

                                    Copy linklocationId string<uuid> Optional

                                    Filter sessions by location ID.

                                    Copy linkvehicleId string<uuid> Optional

                                    Filter sessions by vehicle ID. Each real-world charging event appears once — the managed session is returned if one exists, otherwise the unmanaged session.

                                    Copy linkResponse 200

                                    Sessions retrieved

                                    Attributes
                                    • Copy linkdata array of object
                                      Show child attributes
                                      • Copy linkdata[].id string<uuid>

                                        The unique identifier for this session.

                                      • Copy linkdata[].state string

                                        Possible enum values:

                                          SETTLED
                                      • Copy linkdata[].policyId string<uuid> or null

                                        The unique identifier for the policy associated with this session.

                                      • Copy linkdata[].vehicleId string<uuid>

                                        The unique identifier for the vehicle associated with this session.

                                      • Copy linkdata[].locationId string<uuid> or null

                                        The unique identifier for the location associated with this session.

                                      • Copy linkdata[].pluggedInAt string<date-time>

                                        The date and time when the vehicle was plugged in.

                                      • Copy linkdata[].pluggedOutAt string<date-time>

                                        The date and time when the vehicle was unplugged.

                                      • Copy linkdata[].blocks array of object

                                        Discrete windows of active charging that occurred during the session.

                                        Show child attributes
                                        • Copy linkdata[].blocks[].mode string

                                          Extensible enum. Whether the block represents active charging or an intended restriction pause.

                                          • CHARGING: The block represents active or planned charging.
                                          • RESTRICTION: The block represents a period where charging is intended to be paused due to a restriction. It normally carries no energy, but may have positive kWh if charging continued anyway, for example because a stop command failed or was delayed.
                                        • Copy linkdata[].blocks[].type string

                                          Extensible enum. The type of charge block. UNKNOWN is energy delivered in a period the session did not plan for: charging the system did not initiate, for example the vehicle charging on its own. Only appears on settled sessions, and always reported with source: UNKNOWN, flexibility: NONE.

                                        • Copy linkdata[].blocks[].source string

                                          Extensible enum. Where this block came from. POLICY and USER_OVERRIDE mirror the target source. UNKNOWN means the charging was not initiated by the schedule or the user, so its origin is unknown; it always pairs with type: UNKNOWN.

                                        • Copy linkdata[].blocks[].flexibility string

                                          How much scheduling freedom this block had.

                                          • FULL: The block could move by at least one hour.
                                          • LIMITED: The block could move, but by less than one hour.
                                          • NONE: The block could not move.

                                          Possible enum values:

                                            FULLLIMITEDNONE
                                        • Copy linkdata[].blocks[].kwhSum number

                                          The total energy delivered during this block in kWh. For completed and in-progress blocks, this is the actual energy delivered. For future (tentative) blocks, this is the system's estimate.

                                        • Copy linkdata[].blocks[].startAt string<date-time>

                                          While ACTIVE, this is when the block started (if past) or is tentatively planned to start (if future). While SETTLED, this is when the block actually started.

                                        • Copy linkdata[].blocks[].endAt string<date-time>

                                          While ACTIVE, this is when the block ended (if past) or is tentatively planned to end (if future). While SETTLED, this is when the block actually ended.

                                      • Copy linkdata[].statistics object

                                        Energy delivery statistics for the session.

                                        Show child attributes
                                        • Copy linkdata[].statistics.aggregated object

                                          Aggregated statistics for the session.

                                          Show child attributes
                                          • Copy linkdata[].statistics.aggregated.kwhSum number or null

                                            The total amount of energy charged in kWh.

                                          • Copy linkdata[].statistics.aggregated.batteryFrom number

                                            The battery percentage at the start of the session.

                                          • Copy linkdata[].statistics.aggregated.batteryTo number

                                            The final battery percentage.

                                        • Copy linkdata[].statistics.timeseries array of object

                                          15-minute interval energy delivery data for the session.

                                          Show child attributes
                                          • Copy linkdata[].statistics.timeseries[].startAt string<date-time>

                                            The start of this 15-minute interval.

                                          • Copy linkdata[].statistics.timeseries[].kwh number

                                            The energy delivered in kWh over this 15-minute interval.

                                      • Copy linkdata[].target object

                                        What the system is charging towards for this session.

                                        Show child attributes
                                        • Copy linkdata[].target.latest

                                          The latest target configuration. Null for unmanaged sessions (e.g. public charging) where the system did not control the charge. Use type to distinguish between REGULAR and IMMEDIATE_START targets.

                                          Show child attributes
                                          • Copy linkdata[].target.latest.id integer

                                            Incrementing identifier for this target within the session.

                                          • Copy linkdata[].target.latest.type string

                                            Possible enum values:

                                              REGULAR
                                          • Copy linkdata[].target.latest.source string

                                            Extensible enum. Whether this target follows the default policy or a user override.

                                          • Copy linkdata[].target.latest.batteryReserve number

                                            The battery reserve percentage. Charging to this level is always prioritised.

                                          • Copy linkdata[].target.latest.minimumChargeTarget number

                                            The minimum charge target as a battery percentage.

                                          • Copy linkdata[].target.latest.readyBy string<date-time>

                                            The time by which the minimum charge target should be reached.

                                      • Copy linkdata[].outcome object

                                        Whether the target will be met for this session.

                                        Show child attributes
                                        • Copy linkdata[].outcome.latest

                                          The final outcome assessment. Null for unmanaged sessions. Use type to distinguish between REGULAR and IMMEDIATE_START outcomes, then state to distinguish ON_TARGET from OFF_TARGET within regular outcomes.

                                          Show child attributes
                                          • Copy linkdata[].outcome.latest.type string

                                            Possible enum values:

                                              REGULAR
                                          • Copy linkdata[].outcome.latest.targetId integer

                                            The target this outcome is evaluated against.

                                          • Copy linkdata[].outcome.latest.state string

                                            The minimum charge target is estimated to be reached by the ready-by time.

                                            Possible enum values:

                                              ON_TARGET
                                          • Copy linkdata[].outcome.latest.batteryLevelAtReadyBy null

                                            Always null for on-target outcomes.

                                          • Copy linkdata[].outcome.latest.minimumChargeTargetReachedAt null

                                            Always null for on-target outcomes.

                                      • Copy linkdata[].error object

                                        Error state for this session.

                                        Show child attributes
                                        • Copy linkdata[].error.latest

                                          The latest error state. Null when there is no active error. Use type to identify the error kind.

                                          Show child attributes
                                          • Copy linkdata[].error.latest.type string

                                            Possible enum values:

                                              START_FAIL
                                      • Copy linkdata[].restrictions object

                                        Restrictions on this session.

                                        Show child attributes
                                        • Copy linkdata[].restrictions.current object or null

                                          The restriction currently constraining charging, or null if none is in effect. When both a POLICY and a USER_OVERRIDE window are active, USER_OVERRIDE takes precedence. When the session is in ACTIVE:IMMEDIATE_START, current is null because the immediate-start override suppresses restriction enforcement; the underlying schedule windows remain visible in all. Reflects the restriction state at the time the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                          Show child attributes
                                          • Copy linkdata[].restrictions.current.type string

                                            The type of restriction.

                                            Possible enum values:

                                              FULL
                                          • Copy linkdata[].restrictions.current.source string

                                            Extensible enum. The source of the restriction.

                                            • USER_OVERRIDE: A user-created restriction.
                                            • POLICY: A restriction from the policy's restriction schedule.
                                          • Copy linkdata[].restrictions.current.startsAt string<date-time>

                                            When the restriction started.

                                          • Copy linkdata[].restrictions.current.endsAt string<date-time>

                                            When the restriction will end.

                                        • Copy linkdata[].restrictions.all array of object

                                          All restriction windows for this session, sorted by startsAt. Covers at least the next 24 hours. Includes policy-scheduled and user-override restrictions. Empty for settled sessions; their historic restriction periods appear as RESTRICTION-mode entries in blocks. Active sessions project POLICY windows from the restriction schedule snapshotted at plug-in, so mid-session policy edits do not affect them. Upcoming sessions project POLICY windows from the current policy schedule. Reflects the restriction state when the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                          Show child attributes
                                          • Copy linkdata[].restrictions.all[].type string

                                            The type of restriction.

                                            Possible enum values:

                                              FULL
                                          • Copy linkdata[].restrictions.all[].source string

                                            Extensible enum. The source of the restriction.

                                            • USER_OVERRIDE: A user-created restriction.
                                            • POLICY: A restriction from the policy's restriction schedule.
                                          • Copy linkdata[].restrictions.all[].startsAt string<date-time>

                                            When the restriction started.

                                          • Copy linkdata[].restrictions.all[].endsAt string<date-time>

                                            When the restriction will end.

                                      • Copy linkdata[].valuation object or null

                                        Tariff-based cost and savings analysis for this session. Null when no tariff formula is configured for the charging location, or when the configured tariff's price data did not cover the session.

                                        Show child attributes
                                        • Copy linkdata[].valuation.currency string

                                          ISO 4217 currency code for the cost values.

                                        • Copy linkdata[].valuation.tariffCost object

                                          Tariff-based cost comparison between actual (smart-charged) and baseline (immediate) charging.

                                          Show child attributes
                                          • Copy linkdata[].valuation.tariffCost.actual number

                                            The energy cost of this session based on when charging actually occurred. Calculated by multiplying the energy delivered in each 15-minute interval by the tariff rate at that time.

                                          • Copy linkdata[].valuation.tariffCost.baseline number

                                            The hypothetical energy cost if the same total energy had been charged immediately starting at plug-in time, without smart charging optimization.

                                          • Copy linkdata[].valuation.tariffCost.savings number

                                            Money saved by shifting charging to cheaper tariff periods. Zero when the tariff is flat, since there is no price variation to optimize against.

                                    • Copy linkpagination object

                                      Cursors to the pages before and after current page. See the PaginationAPI section for reference.

                                      Show child attributes

                                    Copy linkResponse 400

                                    Invalid query parameters

                                    Was this section helpful?

                                    Get active session

                                    GET /flex/vehicle-policies/{policyId}/session

                                    Get the current active or upcoming Flexible EV Charging Session for a policy. The session provides real-time visibility into what the system is charging towards (target), whether it will succeed (outcome), the actual charge windows (blocks), and energy delivery data (statistics).

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkpolicyId string<uuid> Required

                                    The ID of the vehicle policy.

                                    Copy linkResponse 200

                                    Session retrieved

                                    Attributes
                                    • Copy linkid string<uuid>

                                      The unique identifier for this session.

                                    • Copy linkstate string

                                      The current state of the session.

                                      • UPCOMING: Initial state, created shortly after the previous session has settled.
                                      • ACTIVE:BATTERY_RESERVE: Vehicle is plugged in, charging to maintain battery reserve.
                                      • ACTIVE:REGULAR: Vehicle is plugged in, smart charging according to schedule.
                                      • ACTIVE:IMMEDIATE_START: Vehicle is plugged in, charging immediately.

                                      Possible enum values:

                                        UPCOMINGACTIVE:BATTERY_RESERVEACTIVE:REGULARACTIVE:IMMEDIATE_START
                                    • Copy linkpolicyId string<uuid> or null

                                      The unique identifier for the policy associated with this session.

                                    • Copy linkvehicleId string<uuid>

                                      The unique identifier for the vehicle associated with this session.

                                    • Copy linklocationId string<uuid> or null

                                      The unique identifier for the location associated with this session.

                                    • Copy linkpluggedInAt string<date-time>

                                      The date and time when the vehicle was plugged in.

                                    • Copy linkpluggedOutAt null

                                      Always null. The vehicle has not been unplugged yet.

                                    • Copy linkblocks array of object

                                      Discrete windows of active charging within the session. Empty while UPCOMING. While ACTIVE, blocks represent a mix of past charging and planned future charging — past blocks are final, future blocks are tentative and may shift as the schedule re-optimizes.

                                      Show child attributes
                                      • Copy linkblocks[].mode string

                                        Extensible enum. Whether the block represents active charging or an intended restriction pause.

                                        • CHARGING: The block represents active or planned charging.
                                        • RESTRICTION: The block represents a period where charging is intended to be paused due to a restriction. It normally carries no energy, but may have positive kWh if charging continued anyway, for example because a stop command failed or was delayed.
                                      • Copy linkblocks[].type string

                                        Extensible enum. The type of charge block. UNKNOWN is energy delivered in a period the session did not plan for: charging the system did not initiate, for example the vehicle charging on its own. Only appears on settled sessions, and always reported with source: UNKNOWN, flexibility: NONE.

                                      • Copy linkblocks[].source string

                                        Extensible enum. Where this block came from. POLICY and USER_OVERRIDE mirror the target source. UNKNOWN means the charging was not initiated by the schedule or the user, so its origin is unknown; it always pairs with type: UNKNOWN.

                                      • Copy linkblocks[].flexibility string

                                        How much scheduling freedom this block had.

                                        • FULL: The block could move by at least one hour.
                                        • LIMITED: The block could move, but by less than one hour.
                                        • NONE: The block could not move.

                                        Possible enum values:

                                          FULLLIMITEDNONE
                                      • Copy linkblocks[].kwhSum number

                                        The total energy delivered during this block in kWh. For completed and in-progress blocks, this is the actual energy delivered. For future (tentative) blocks, this is the system's estimate.

                                      • Copy linkblocks[].startAt string<date-time>

                                        While ACTIVE, this is when the block started (if past) or is tentatively planned to start (if future). While SETTLED, this is when the block actually started.

                                      • Copy linkblocks[].endAt string<date-time>

                                        While ACTIVE, this is when the block ended (if past) or is tentatively planned to end (if future). While SETTLED, this is when the block actually ended.

                                    • Copy linkstatistics object

                                      Energy delivery statistics for the session.

                                      Show child attributes
                                      • Copy linkstatistics.aggregated object or null

                                        Aggregated statistics for the session. Null while UPCOMING.

                                        Show child attributes
                                        • Copy linkstatistics.aggregated.kwhSum number or null

                                          The total amount of energy charged in kWh.

                                        • Copy linkstatistics.aggregated.batteryFrom number

                                          The battery percentage at the start of the session.

                                        • Copy linkstatistics.aggregated.batteryTo number

                                          The current battery percentage while ACTIVE, or the final battery percentage when SETTLED.

                                      • Copy linkstatistics.timeseries array of object

                                        15-minute interval energy delivery data. Empty while UPCOMING.

                                        Show child attributes
                                        • Copy linkstatistics.timeseries[].startAt string<date-time>

                                          The start of this 15-minute interval.

                                        • Copy linkstatistics.timeseries[].kwh number

                                          The energy delivered in kWh over this 15-minute interval.

                                    • Copy linktarget object

                                      What the system is charging towards for this session.

                                      Show child attributes
                                      • Copy linktarget.latest

                                        The latest target configuration. Null for unmanaged sessions (e.g. public charging) where the system did not control the charge. Use type to distinguish between REGULAR and IMMEDIATE_START targets.

                                        Show child attributes
                                        • Copy linktarget.latest.id integer

                                          Incrementing identifier for this target within the session.

                                        • Copy linktarget.latest.type string

                                          Possible enum values:

                                            REGULAR
                                        • Copy linktarget.latest.source string

                                          Extensible enum. Whether this target follows the default policy or a user override.

                                        • Copy linktarget.latest.batteryReserve number

                                          The battery reserve percentage. Charging to this level is always prioritised.

                                        • Copy linktarget.latest.minimumChargeTarget number

                                          The minimum charge target as a battery percentage.

                                        • Copy linktarget.latest.readyBy string<date-time>

                                          The time by which the minimum charge target should be reached.

                                    • Copy linkoutcome object

                                      Whether the target will be met for this session.

                                      Show child attributes
                                      • Copy linkoutcome.latest

                                        The latest outcome assessment. Null before the first estimate is available. Use type to distinguish between REGULAR and IMMEDIATE_START outcomes, then state to distinguish ON_TARGET from OFF_TARGET within regular outcomes.

                                        Show child attributes
                                        • Copy linkoutcome.latest.type string

                                          Possible enum values:

                                            REGULAR
                                        • Copy linkoutcome.latest.targetId integer

                                          The target this outcome is evaluated against.

                                        • Copy linkoutcome.latest.state string

                                          The minimum charge target is estimated to be reached by the ready-by time.

                                          Possible enum values:

                                            ON_TARGET
                                        • Copy linkoutcome.latest.batteryLevelAtReadyBy null

                                          Always null for on-target outcomes.

                                        • Copy linkoutcome.latest.minimumChargeTargetReachedAt null

                                          Always null for on-target outcomes.

                                    • Copy linkerror object

                                      Error state for this session.

                                      Show child attributes
                                      • Copy linkerror.latest

                                        The latest error state. Null when there is no active error. Use type to identify the error kind.

                                        Show child attributes
                                        • Copy linkerror.latest.type string

                                          Possible enum values:

                                            START_FAIL
                                    • Copy linkrestrictions object

                                      Restrictions on this session.

                                      Show child attributes
                                      • Copy linkrestrictions.current object or null

                                        The restriction currently constraining charging, or null if none is in effect. When both a POLICY and a USER_OVERRIDE window are active, USER_OVERRIDE takes precedence. When the session is in ACTIVE:IMMEDIATE_START, current is null because the immediate-start override suppresses restriction enforcement; the underlying schedule windows remain visible in all. Reflects the restriction state at the time the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                        Show child attributes
                                        • Copy linkrestrictions.current.type string

                                          The type of restriction.

                                          Possible enum values:

                                            FULL
                                        • Copy linkrestrictions.current.source string

                                          Extensible enum. The source of the restriction.

                                          • USER_OVERRIDE: A user-created restriction.
                                          • POLICY: A restriction from the policy's restriction schedule.
                                        • Copy linkrestrictions.current.startsAt string<date-time>

                                          When the restriction started.

                                        • Copy linkrestrictions.current.endsAt string<date-time>

                                          When the restriction will end.

                                      • Copy linkrestrictions.all array of object

                                        All restriction windows for this session, sorted by startsAt. Covers at least the next 24 hours. Includes policy-scheduled and user-override restrictions. Empty for settled sessions; their historic restriction periods appear as RESTRICTION-mode entries in blocks. Active sessions project POLICY windows from the restriction schedule snapshotted at plug-in, so mid-session policy edits do not affect them. Upcoming sessions project POLICY windows from the current policy schedule. Reflects the restriction state when the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                        Show child attributes
                                        • Copy linkrestrictions.all[].type string

                                          The type of restriction.

                                          Possible enum values:

                                            FULL
                                        • Copy linkrestrictions.all[].source string

                                          Extensible enum. The source of the restriction.

                                          • USER_OVERRIDE: A user-created restriction.
                                          • POLICY: A restriction from the policy's restriction schedule.
                                        • Copy linkrestrictions.all[].startsAt string<date-time>

                                          When the restriction started.

                                        • Copy linkrestrictions.all[].endsAt string<date-time>

                                          When the restriction will end.

                                    Copy linkResponse 404

                                    Session not found

                                    Was this section helpful?

                                    Get settled session

                                    GET /flex/vehicle-policies/{policyId}/sessions/{sessionId}

                                    Get a settled Flexible EV Charging Session, either managed or unmanaged. The session provides the actual charge windows (blocks), energy delivery data (statistics), and final outcome.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkpolicyId string<uuid> Required

                                    The ID of the vehicle policy.

                                    Copy linksessionId string<uuid> Required

                                    The ID of the session.

                                    Copy linkResponse 200

                                    Session retrieved

                                    Attributes
                                    • Copy linkid string<uuid>

                                      The unique identifier for this session.

                                    • Copy linkstate string

                                      Possible enum values:

                                        SETTLED
                                    • Copy linkpolicyId string<uuid> or null

                                      The unique identifier for the policy associated with this session.

                                    • Copy linkvehicleId string<uuid>

                                      The unique identifier for the vehicle associated with this session.

                                    • Copy linklocationId string<uuid> or null

                                      The unique identifier for the location associated with this session.

                                    • Copy linkpluggedInAt string<date-time>

                                      The date and time when the vehicle was plugged in.

                                    • Copy linkpluggedOutAt string<date-time>

                                      The date and time when the vehicle was unplugged.

                                    • Copy linkblocks array of object

                                      Discrete windows of active charging that occurred during the session.

                                      Show child attributes
                                      • Copy linkblocks[].mode string

                                        Extensible enum. Whether the block represents active charging or an intended restriction pause.

                                        • CHARGING: The block represents active or planned charging.
                                        • RESTRICTION: The block represents a period where charging is intended to be paused due to a restriction. It normally carries no energy, but may have positive kWh if charging continued anyway, for example because a stop command failed or was delayed.
                                      • Copy linkblocks[].type string

                                        Extensible enum. The type of charge block. UNKNOWN is energy delivered in a period the session did not plan for: charging the system did not initiate, for example the vehicle charging on its own. Only appears on settled sessions, and always reported with source: UNKNOWN, flexibility: NONE.

                                      • Copy linkblocks[].source string

                                        Extensible enum. Where this block came from. POLICY and USER_OVERRIDE mirror the target source. UNKNOWN means the charging was not initiated by the schedule or the user, so its origin is unknown; it always pairs with type: UNKNOWN.

                                      • Copy linkblocks[].flexibility string

                                        How much scheduling freedom this block had.

                                        • FULL: The block could move by at least one hour.
                                        • LIMITED: The block could move, but by less than one hour.
                                        • NONE: The block could not move.

                                        Possible enum values:

                                          FULLLIMITEDNONE
                                      • Copy linkblocks[].kwhSum number

                                        The total energy delivered during this block in kWh. For completed and in-progress blocks, this is the actual energy delivered. For future (tentative) blocks, this is the system's estimate.

                                      • Copy linkblocks[].startAt string<date-time>

                                        While ACTIVE, this is when the block started (if past) or is tentatively planned to start (if future). While SETTLED, this is when the block actually started.

                                      • Copy linkblocks[].endAt string<date-time>

                                        While ACTIVE, this is when the block ended (if past) or is tentatively planned to end (if future). While SETTLED, this is when the block actually ended.

                                    • Copy linkstatistics object

                                      Energy delivery statistics for the session.

                                      Show child attributes
                                      • Copy linkstatistics.aggregated object

                                        Aggregated statistics for the session.

                                        Show child attributes
                                        • Copy linkstatistics.aggregated.kwhSum number or null

                                          The total amount of energy charged in kWh.

                                        • Copy linkstatistics.aggregated.batteryFrom number

                                          The battery percentage at the start of the session.

                                        • Copy linkstatistics.aggregated.batteryTo number

                                          The final battery percentage.

                                      • Copy linkstatistics.timeseries array of object

                                        15-minute interval energy delivery data for the session.

                                        Show child attributes
                                        • Copy linkstatistics.timeseries[].startAt string<date-time>

                                          The start of this 15-minute interval.

                                        • Copy linkstatistics.timeseries[].kwh number

                                          The energy delivered in kWh over this 15-minute interval.

                                    • Copy linktarget object

                                      What the system is charging towards for this session.

                                      Show child attributes
                                      • Copy linktarget.latest

                                        The latest target configuration. Null for unmanaged sessions (e.g. public charging) where the system did not control the charge. Use type to distinguish between REGULAR and IMMEDIATE_START targets.

                                        Show child attributes
                                        • Copy linktarget.latest.id integer

                                          Incrementing identifier for this target within the session.

                                        • Copy linktarget.latest.type string

                                          Possible enum values:

                                            REGULAR
                                        • Copy linktarget.latest.source string

                                          Extensible enum. Whether this target follows the default policy or a user override.

                                        • Copy linktarget.latest.batteryReserve number

                                          The battery reserve percentage. Charging to this level is always prioritised.

                                        • Copy linktarget.latest.minimumChargeTarget number

                                          The minimum charge target as a battery percentage.

                                        • Copy linktarget.latest.readyBy string<date-time>

                                          The time by which the minimum charge target should be reached.

                                    • Copy linkoutcome object

                                      Whether the target will be met for this session.

                                      Show child attributes
                                      • Copy linkoutcome.latest

                                        The final outcome assessment. Null for unmanaged sessions. Use type to distinguish between REGULAR and IMMEDIATE_START outcomes, then state to distinguish ON_TARGET from OFF_TARGET within regular outcomes.

                                        Show child attributes
                                        • Copy linkoutcome.latest.type string

                                          Possible enum values:

                                            REGULAR
                                        • Copy linkoutcome.latest.targetId integer

                                          The target this outcome is evaluated against.

                                        • Copy linkoutcome.latest.state string

                                          The minimum charge target is estimated to be reached by the ready-by time.

                                          Possible enum values:

                                            ON_TARGET
                                        • Copy linkoutcome.latest.batteryLevelAtReadyBy null

                                          Always null for on-target outcomes.

                                        • Copy linkoutcome.latest.minimumChargeTargetReachedAt null

                                          Always null for on-target outcomes.

                                    • Copy linkerror object

                                      Error state for this session.

                                      Show child attributes
                                      • Copy linkerror.latest

                                        The latest error state. Null when there is no active error. Use type to identify the error kind.

                                        Show child attributes
                                        • Copy linkerror.latest.type string

                                          Possible enum values:

                                            START_FAIL
                                    • Copy linkrestrictions object

                                      Restrictions on this session.

                                      Show child attributes
                                      • Copy linkrestrictions.current object or null

                                        The restriction currently constraining charging, or null if none is in effect. When both a POLICY and a USER_OVERRIDE window are active, USER_OVERRIDE takes precedence. When the session is in ACTIVE:IMMEDIATE_START, current is null because the immediate-start override suppresses restriction enforcement; the underlying schedule windows remain visible in all. Reflects the restriction state at the time the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                        Show child attributes
                                        • Copy linkrestrictions.current.type string

                                          The type of restriction.

                                          Possible enum values:

                                            FULL
                                        • Copy linkrestrictions.current.source string

                                          Extensible enum. The source of the restriction.

                                          • USER_OVERRIDE: A user-created restriction.
                                          • POLICY: A restriction from the policy's restriction schedule.
                                        • Copy linkrestrictions.current.startsAt string<date-time>

                                          When the restriction started.

                                        • Copy linkrestrictions.current.endsAt string<date-time>

                                          When the restriction will end.

                                      • Copy linkrestrictions.all array of object

                                        All restriction windows for this session, sorted by startsAt. Covers at least the next 24 hours. Includes policy-scheduled and user-override restrictions. Empty for settled sessions; their historic restriction periods appear as RESTRICTION-mode entries in blocks. Active sessions project POLICY windows from the restriction schedule snapshotted at plug-in, so mid-session policy edits do not affect them. Upcoming sessions project POLICY windows from the current policy schedule. Reflects the restriction state when the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                        Show child attributes
                                        • Copy linkrestrictions.all[].type string

                                          The type of restriction.

                                          Possible enum values:

                                            FULL
                                        • Copy linkrestrictions.all[].source string

                                          Extensible enum. The source of the restriction.

                                          • USER_OVERRIDE: A user-created restriction.
                                          • POLICY: A restriction from the policy's restriction schedule.
                                        • Copy linkrestrictions.all[].startsAt string<date-time>

                                          When the restriction started.

                                        • Copy linkrestrictions.all[].endsAt string<date-time>

                                          When the restriction will end.

                                    • Copy linkvaluation object or null

                                      Tariff-based cost and savings analysis for this session. Null when no tariff formula is configured for the charging location, or when the configured tariff's price data did not cover the session.

                                      Show child attributes
                                      • Copy linkvaluation.currency string

                                        ISO 4217 currency code for the cost values.

                                      • Copy linkvaluation.tariffCost object

                                        Tariff-based cost comparison between actual (smart-charged) and baseline (immediate) charging.

                                        Show child attributes
                                        • Copy linkvaluation.tariffCost.actual number

                                          The energy cost of this session based on when charging actually occurred. Calculated by multiplying the energy delivered in each 15-minute interval by the tariff rate at that time.

                                        • Copy linkvaluation.tariffCost.baseline number

                                          The hypothetical energy cost if the same total energy had been charged immediately starting at plug-in time, without smart charging optimization.

                                        • Copy linkvaluation.tariffCost.savings number

                                          Money saved by shifting charging to cheaper tariff periods. Zero when the tariff is flat, since there is no price variation to optimize against.

                                    Copy linkResponse 404

                                    Session not found

                                    Was this section helpful?

                                    Create session restriction

                                    POST /flex/sessions/{sessionId}/restriction

                                    Create a restriction (pause) on an active or upcoming session. The system immediately requests charging to stop and plans charging around the restriction window. If a restriction already exists, the new one replaces it. Creating a restriction while an immediate-start override is active cancels the immediate start.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksessionId string<uuid> Required

                                    The ID of the session.

                                    Attributes
                                    • Copy linktype string Required

                                      The type of restriction. Currently only FULL (restrict all planned charging) is supported.

                                      Possible enum values:

                                        FULL
                                    • Copy linkendsAt string<date-time> Required

                                      When the restriction should end. Must be in the future.

                                    Copy linkResponse 201

                                    Restriction created

                                    Attributes
                                    • Copy linktype string

                                      The type of restriction.

                                      Possible enum values:

                                        FULL
                                    • Copy linksource string

                                      The source of the restriction.

                                      Possible enum values:

                                        USER_OVERRIDE
                                    • Copy linkstartsAt string<date-time>

                                      When the restriction started.

                                    • Copy linkendsAt string<date-time>

                                      When the restriction will end.

                                    • Copy linkcreatedAt string<date-time>

                                      When the restriction was created.

                                    Copy linkResponse 400

                                    Invalid request parameters or no active or upcoming session

                                    Copy linkResponse 423

                                    Flex policy is temporarily locked

                                    Was this section helpful?

                                    Delete session restriction

                                    DELETE /flex/sessions/{sessionId}/restriction

                                    Remove the active restriction from a session. The optimizer resumes normal scheduling.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksessionId string<uuid> Required

                                    The ID of the session.

                                    Copy linkResponse 204

                                    Restriction removed

                                    Copy linkResponse 404

                                    No active restriction found

                                    Copy linkResponse 423

                                    Flex policy is temporarily locked

                                    Was this section helpful?

                                    Get sessions statistics

                                    GET /flex/vehicle-policies/statistics

                                    Returns the energy delivered by settled Flexible EV Charging Sessions, grouped by type, source, and flexibility, then bucketed over time by resolution.

                                    A session falls in the bucket that contains its sessionEndTime. Only settled sessions are counted; active and upcoming sessions are excluded.

                                    Each request must set locationId, vehicleId, or both. A single request can span up to 90 days at DAY resolution, or 6 months at MONTH resolution.

                                    Copy linkRequest

                                    Query parameters
                                    Copy linkstartDate string<date-time> Required

                                    Inclusive start of the report window in local time, as an RFC3339 timestamp. Truncated to the bucket boundary: local start of day for DAY, local start of month for MONTH.

                                    Copy linkendDate string<date-time> Required

                                    Exclusive end of the report window in local time, as an RFC3339 timestamp. Truncated to the bucket boundary: local start of day for DAY, local start of month for MONTH.

                                    Copy linkresolution string Optional

                                    Bucket size for aggregating the report. DAY returns one bucket per local day; MONTH returns one bucket per local calendar month.

                                    Default value: DAY

                                    Possible enum values:

                                      DAYMONTH
                                    Copy linklocationId string<uuid> Optional

                                    Optionally limit the report to sessions at this location. When provided, the location timezone defines the report buckets.

                                    Copy linkvehicleId string Optional

                                    Optionally limit the report to sessions for this vehicle. If provided without locationId, the vehicle's active Flex Policy determines the location and bucket timezone.

                                    Copy linkResponse 200

                                    Statistics retrieved

                                    Attributes
                                    • Copy linkresolution string

                                      Bucket size used for aggregating the report.

                                      Possible enum values:

                                        DAYMONTH
                                    • Copy linkresults array of object

                                      Buckets covering the requested window, ordered by date ascending. One entry per bucket from startDate (inclusive) up to endDate (exclusive).

                                      Show child attributes
                                      • Copy linkresults[].date string<date>

                                        Start of this bucket as a local calendar date. For DAY resolution this is the local day; for MONTH it is the first day of the local calendar month.

                                      • Copy linkresults[].rows array of object

                                        One row per (type, source, flexibility) combination the system can produce. Combinations with no energy in this bucket are reported with kwhSum: 0 rather than omitted. The set of combinations may grow in future releases.

                                        Show child attributes
                                        • Copy linkresults[].rows[].type string

                                          Extensible enum. Category of the underlying session blocks.

                                          • BATTERY_RESERVE: Charging up to the battery reserve level. Policy-driven and always reported with flexibility: NONE.
                                          • REGULAR: Flexible charging that follows the schedule. Each block reports FULL, LIMITED, or NONE, based on how much room it had to move when planned.
                                          • IMMEDIATE_START: Charging triggered by a user override. Always reported with flexibility: NONE.
                                          • RESTRICTION: A window where charging was meant to be paused. Normally carries no energy, but may report positive kWh if the vehicle kept charging anyway, for example because a stop command failed or was delayed.
                                          • UNKNOWN: Energy that does not match any planned charging, either delivered outside a planned window or impossible to tie to a specific block. This row keeps each bucket's total complete, so every delivered kWh is accounted for. Always reported with source: UNKNOWN, flexibility: NONE.
                                        • Copy linkresults[].rows[].source string

                                          Extensible enum. Whether the block was driven by the policy schedule or a user override.

                                          • POLICY: The block came from the policy's weekly schedule.
                                          • USER_OVERRIDE: The block came from a user override of the target.
                                          • UNKNOWN: Energy with no known origin: charging the schedule and the user did not initiate, plus energy that cannot be tied to a specific block. Always reported with type: UNKNOWN, flexibility: NONE.
                                        • Copy linkresults[].rows[].flexibility string

                                          Extensible enum. Scheduling freedom the underlying blocks had when planned. BATTERY_RESERVE and IMMEDIATE_START rows always report NONE.

                                          • FULL: The blocks could move by at least one hour.
                                          • LIMITED: The blocks could move, but by less than one hour.
                                          • NONE: The blocks could not move.
                                        • Copy linkresults[].rows[].tag string

                                          Extensible enum. A custom label applied to this row's energy, available only when configured for your account. Contact your CSM to learn more.

                                        • Copy linkresults[].rows[].kwhSum number

                                          Total kWh delivered for this (type, source, flexibility) combination. Settled sessions only.

                                    Copy linkResponse 400

                                    Bad request. Returns the validation-error problem type when query parameters fail schema validation (wrong type, format, or enum value). Returns the bad-request problem type when parameters are valid but violate a business rule, such as exceeding the allowed date range.

                                    Copy linkResponse 404

                                    Not found. A referenced locationId, vehicleId, or active Flex Policy does not exist.

                                    Was this section helpful?

                                    Set session target

                                    PUT /flex/sessions/{sessionId}/target

                                    Set or replace the target on an active or upcoming session.

                                    A REGULAR target sets a custom charge target and deadline — the system optimizes charging to reach minimumChargeTarget by readyBy.

                                    An IMMEDIATE_START target forces the vehicle to start charging immediately to minimumChargeTarget.

                                    Setting a target replaces any existing override on the session. An IMMEDIATE_START target cancels any active restriction.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linksessionId string<uuid> Required

                                    The ID of the session.

                                    Attributes
                                    • Copy linktype string Required

                                      Possible enum values:

                                        REGULAR
                                    • Copy linkminimumChargeTarget number Optional

                                      The minimum charge target as a battery percentage. If omitted, the policy's default target is used.

                                    • Copy linkreadyBy string<date-time> Optional

                                      The time by which the vehicle should be charged. Must be in the future and within 1 week. If omitted, the policy's default deadline is used.

                                    Copy linkResponse 204

                                    Target set

                                    Copy linkResponse 400

                                    Invalid target configuration

                                    Copy linkResponse 404

                                    No active or upcoming session found for this session ID

                                    Copy linkResponse 423

                                    Flex policy is temporarily locked

                                    Was this section helpful?

                                    Price signals

                                    Configure zones and locations, then push price signals to drive optimization. Zones represent market bidding zones (e.g., NO1, BE, SE3) with a configured currency. Locations must be assigned to a zone before optimization can run. Price signals are scoped to a zone — each push may trigger re-optimization of affected assets.

                                    Set location zone

                                    PUT /flex/locations/{locationId}

                                    Assign a location to a zone. The zone determines which price signal and optimization context applies to this location.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Attributes
                                    • Copy linkzoneId string Required

                                      The zone to assign this location to. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                      Possible enum values:

                                        NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH

                                    Copy linkResponse 204

                                    Zone assignment accepted.

                                    Copy linkResponse 400

                                    Invalid location zone payload.

                                    Copy linkResponse 404

                                    Location not found.

                                    Was this section helpful?

                                    Get zone

                                    GET /flex/zones/{zoneId}

                                    Get a zone by ID. Zones are automatically derived from the market bidding zones of the client's connected vehicles.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH

                                    Copy linkResponse 200

                                    Successful.

                                    Attributes
                                    • Copy linkid string

                                      The zone identifier. Corresponds to a market bidding zone.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    List zones

                                    GET /flex/zones

                                    List all zones where the client has connected vehicles.

                                    Copy linkResponse 200

                                    Successful.

                                    Attributes (list of object)
                                    • Copy linkid string

                                      The zone identifier. Corresponds to a market bidding zone.

                                    Was this section helpful?

                                    Push price signal

                                    PUT /flex/price-signals/{zoneId}

                                    Push a price signal for a zone. Replaces all existing data in the window [firstValue.at, to) with the provided values. Each push may trigger re-optimization of all assets in the zone.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Header parameters
                                    Copy linkIdempotency-Key string Optional

                                    Optional key used to deduplicate retries. A key remains bound to its original semantic payload for the lifetime of the retained price revision.

                                    Attributes
                                    • Copy linkcurrency string Required

                                      ISO 4217 currency code. The first accepted revision establishes the price-signal stream currency; later revisions must match it. Enode does not perform currency conversion.

                                    • Copy linkissuedAt string<date-time> Optional

                                      When the customer or upstream price provider issued this revision. This is source provenance only; Enode uses its own receipt order to determine what was known at a point in time.

                                    • Copy linkexternalRevisionId string Optional

                                      Optional revision identifier assigned by the customer or upstream price provider.

                                    • Copy linkto string<date-time> Required

                                      End of the replacement window (exclusive). All existing data in [firstValue.at, to) is replaced with the provided values.

                                    • Copy linkvalues array of object Required

                                      The price signal values. Between 1 and 10,000 values are accepted. Values must be ordered chronologically. Each value defines the price from its timestamp until the next value (step function). The first value's 'at' defines the start of the replacement window.

                                      Show child attributes
                                      • Copy linkvalues[].at string<date-time> Required

                                        UTC timestamp when this price becomes effective. The price applies from this point until the next value (or until the window end).

                                      • Copy linkvalues[].price number Required

                                        The price value in the price-signal stream's currency per kWh.

                                    Copy linkResponse 204

                                    Price signal accepted. An identical idempotent retry returns the original revision metadata without applying the replacement again.

                                    Copy linkResponse 400

                                    Invalid request payload, or a currency that does not match the existing price-signal stream.

                                    Copy linkResponse 422

                                    The provided Idempotency-Key has already been used with a different semantic payload.

                                    Was this section helpful?

                                    Get price signal

                                    GET /flex/price-signals/{zoneId}

                                    Retrieve the current price signal for a zone over a time range.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Query parameters
                                    Copy linkfrom string<date-time> Required

                                    Start of the time range (UTC).

                                    Copy linkto string<date-time> Required

                                    End of the time range (UTC).

                                    Copy linkResponse 200

                                    Successful. The values array is empty when no price signal exists in the requested window.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this price signal belongs to.

                                    • Copy linkcurrency string

                                      The currency of the price values. Legacy data received before currency provenance was persisted retains the historical EUR response fallback until the first accepted revision establishes the stream currency.

                                    • Copy linkfrom string<date-time>

                                      Start of the queried time range.

                                    • Copy linkto string<date-time>

                                      End of the queried time range.

                                    • Copy linkvalues array of object

                                      The price signal values whose validity overlaps the queried range. Includes the last value before from when it is still in effect at from (step-function carry-forward), so its at can precede the queried range.

                                      Show child attributes
                                      • Copy linkvalues[].at string<date-time>

                                        UTC timestamp when this price becomes effective. The price applies from this point until the next value (or until the window end).

                                      • Copy linkvalues[].price number

                                        The price value in the price-signal stream's currency per kWh.

                                    Copy linkResponse 400

                                    Invalid query parameters.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Shape

                                    The Flex Shape API exposes an aggregated controllable energy load per zone. Trading algorithms use the shape to construct bid curves.

                                    Set location dimension group

                                    PUT /flex/locations/{locationId}/dimensions/{dimensionId}

                                    Assign a location to a group in a Flex Shape segmentation dimension. Dimensions and their groups are configured by Enode and agreed upfront with your organization. A location belongs to at most one group per dimension; assigning a new group replaces the previous assignment, and repeating an assignment is idempotent. Dimensions prefixed with system: are managed by Enode and cannot be modified.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Copy linkdimensionId string Required

                                    ID of the Flex Shape dimension, as configured by Enode for your organization.

                                    Attributes
                                    • Copy linkgroupId string Required

                                      The group to assign this location to. Must belong to the dimension in the path.

                                    Copy linkResponse 204

                                    Group assignment accepted.

                                    Copy linkResponse 400

                                    Unknown dimension or group, or the dimension is managed by Enode.

                                    Copy linkResponse 404

                                    Location not found.

                                    Was this section helpful?

                                    Clear location dimension group

                                    DELETE /flex/locations/{locationId}/dimensions/{dimensionId}

                                    Remove a location's group assignment for a Flex Shape segmentation dimension.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Copy linkdimensionId string Required

                                    ID of the Flex Shape dimension, as configured by Enode for your organization.

                                    Copy linkResponse 204

                                    Group assignment cleared.

                                    Copy linkResponse 400

                                    Unknown dimension, or the dimension is managed by Enode.

                                    Copy linkResponse 404

                                    Location not found.

                                    Was this section helpful?

                                    Batch set location dimension groups

                                    PUT /flex/locations/dimensions/{dimensionId}/assignments

                                    Assign many locations to groups in one Flex Shape segmentation dimension. Dimensions and their groups are configured by Enode and agreed upfront with your organization. Each location belongs to at most one group per dimension; assigning a new group replaces the previous assignment, and repeating unchanged assignments is idempotent. Locations not included in the request keep their current assignments. The request is applied atomically: validation failures reject the entire batch without partial writes. Dimensions prefixed with system: are managed by Enode and cannot be modified.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkdimensionId string Required

                                    ID of the Flex Shape dimension, as configured by Enode for your organization.

                                    Attributes
                                    • Copy linkassignments array of object Required

                                      Location assignments to apply atomically. Each location may appear at most once.

                                      Show child attributes
                                      • Copy linkassignments[].locationId string<uuid> Required

                                        ID of the Location to assign.

                                      • Copy linkassignments[].groupId string Required

                                        The group to assign this location to. Must belong to the dimension in the path.

                                    Copy linkResponse 204

                                    Batch group assignments accepted.

                                    Copy linkResponse 400

                                    Invalid payload, duplicate location, unknown dimension or group, or the dimension is managed by Enode.

                                    Copy linkResponse 404

                                    At least one location was not found.

                                    Was this section helpful?

                                    List location dimension groups

                                    GET /flex/locations/{locationId}/dimensions

                                    List the current Flex Shape segmentation dimension group assignments for a location.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linklocationId string<uuid> Required

                                    ID of the Location.

                                    Copy linkResponse 200

                                    Current group assignments for the location.

                                    Attributes
                                    • Copy linkdata array of object

                                      Current group assignments for the location, ordered by dimension ID.

                                      Show child attributes
                                      • Copy linkdata[].dimensionId string

                                        ID of the Flex Shape dimension.

                                      • Copy linkdata[].groupId string

                                        ID of the group assigned for this dimension.

                                    Copy linkResponse 404

                                    Location not found.

                                    Was this section helpful?

                                    Get flex shape

                                    GET /flex/shape/{zoneId}

                                    Get the flex shape for a zone. Returns the total flexible load forecast — one HTTP request per zone returns everything needed to construct bid curves.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH

                                    Copy linkResponse 200

                                    Shape retrieved.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this shape belongs to.

                                    • Copy linkcomputedAt string<date-time>

                                      When this shape was computed.

                                    • Copy linkchunkSizeMinutes number

                                      The size of each chunk in minutes.

                                    • Copy linkrevisionId string

                                      Revision identifier derived from the underlying forecast data. Changes when a recomputation produces different data; identical data yields the same identifier.

                                    • Copy linkassetCount integer

                                      The number of unique assets represented by the containing forecast or realized-load chunk.

                                    • Copy linkstartAt string<date-time>

                                      The timestamp of the first chunk.

                                    • Copy linkendAt string<date-time>

                                      The timestamp after the last chunk.

                                    • Copy linkchunks array of object

                                      The forecast chunks aggregated across all assets in the zone.

                                      Show child attributes
                                      • Copy linkchunks[].timestamp string<date-time>

                                        The start timestamp of the chunk.

                                      • Copy linkchunks[].forecast object

                                        Forecast attributes for this chunk, with a confidence score.

                                        Show child attributes
                                        • Copy linkchunks[].forecast.expectedKw number

                                          The expected mean load in kW.

                                        • Copy linkchunks[].forecast.minimumKw number

                                          The achievable minimum mean load in kW.

                                        • Copy linkchunks[].forecast.maximumKw number

                                          The achievable maximum mean load in kW.

                                        • Copy linkchunks[].forecast.confidence number

                                          Probability that the expectedKw forecast is within a small (configurable) margin of the realized load (0.0-1.0).

                                      • Copy linkchunks[].relativeSetpoint number

                                        The relative setpoint constraint applied to this chunk, in kW. 0 means no constraint.

                                    • Copy linkdeliverable array of object

                                      Per-chunk accounting of how requested relative setpoints map to claimed asset schedules. This field is only included for clients with the flexShapeDeliverableAccounting feature flag enabled, and is omitted otherwise.

                                      Show child attributes
                                      • Copy linkdeliverable[].timestamp string<date-time>

                                        The start timestamp of the chunk.

                                      • Copy linkdeliverable[].requestedKw number

                                        The requested relative setpoint for this chunk, in kW.

                                      • Copy linkdeliverable[].claimableNowKw number

                                        The unweighted constrained-minus-optimal load currently claimable by live sessions, in kW.

                                      • Copy linkdeliverable[].claimableIfPredictedKw number

                                        The unweighted constrained-minus-optimal load claimable if predicted arrivals materialize, in kW.

                                      • Copy linkdeliverable[].unabsorbedKw number

                                        The requested setpoint not accounted for by claimed asset schedules, in kW.

                                      • Copy linkdeliverable[].pendingArrivalsKw number

                                        The unabsorbed setpoint magnitude expected to be recruitable from sessions not yet claimed, as they materialize, in kW.

                                      • Copy linkdeliverable[].infeasibleKw number

                                        The unabsorbed setpoint magnitude beyond what the fleet's remaining sessions can deliver, in kW.

                                    Copy linkResponse 400

                                    Invalid request parameters, or the Flex Shape API is not activated for this client.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Update shape constraints

                                    PATCH /flex/shape/{zoneId}

                                    Apply constraint changes to the flex shape. Sets or clears relative setpoint constraints on individual chunks. Changes take effect on the next shape computation.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Attributes
                                    • Copy linkchunks array of object Required

                                      The chunks to update. Each entry sets or clears a constraint at the given timestamp.

                                      Show child attributes
                                      • Copy linkchunks[].timestamp string<date-time> Required

                                        The timestamp of the chunk to set or clear.

                                      • Copy linkchunks[].relativeSetpoint number or null Required

                                        The relative setpoint constraint in kW. Set to null to remove an existing constraint.

                                    Copy linkResponse 204

                                    Constraints updated.

                                    Copy linkResponse 400

                                    Invalid request parameters, or the Flex Shape API is not activated for this client.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Get segmented flex shape

                                    GET /flex/shape/{zoneId}/dimensions/{dimensionId}/groups

                                    Get the flex shape for a zone segmented by one configured dimension. The response contains one entry per group plus an unassigned bucket for assets that have not been assigned to any group.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Copy linkdimensionId string Required

                                    ID of the Flex Shape dimension, as configured by Enode for your organization.

                                    Copy linkResponse 200

                                    Segmented shape retrieved.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this shape belongs to.

                                    • Copy linkcomputedAt string<date-time>

                                      When this shape was computed.

                                    • Copy linkchunkSizeMinutes number

                                      The size of each chunk in minutes.

                                    • Copy linkrevisionId string

                                      Revision identifier derived from the underlying forecast data. Changes when a recomputation produces different data; identical data yields the same identifier.

                                    • Copy linktotal object

                                      The total shape across all assets in the zone. For each curve in each chunk, the group shapes and unassigned bucket reconcile with the total within ceil(1000 * (8 * Number.EPSILON * max(1, abs(totalKw)) * bucketCount + (bucketCount + 1) * 0.000501)) / 1000 kW, where bucketCount is the number of groups plus the unassigned bucket. Their asset counts sum exactly to total.assetCount.

                                      Show child attributes
                                      • Copy linktotal.assetCount integer

                                        The number of unique assets represented by the containing forecast or realized-load chunk.

                                      • Copy linktotal.startAt string<date-time>

                                        The timestamp of the first chunk.

                                      • Copy linktotal.endAt string<date-time>

                                        The timestamp after the last chunk.

                                      • Copy linktotal.chunks array of object

                                        The forecast chunks aggregated across all assets in the zone.

                                        Show child attributes
                                        • Copy linktotal.chunks[].timestamp string<date-time>

                                          The start timestamp of the chunk.

                                        • Copy linktotal.chunks[].forecast object

                                          Forecast attributes for this chunk, with a confidence score.

                                          Show child attributes
                                          • Copy linktotal.chunks[].forecast.expectedKw number

                                            The expected mean load in kW.

                                          • Copy linktotal.chunks[].forecast.minimumKw number

                                            The achievable minimum mean load in kW.

                                          • Copy linktotal.chunks[].forecast.maximumKw number

                                            The achievable maximum mean load in kW.

                                          • Copy linktotal.chunks[].forecast.confidence number

                                            Probability that the expectedKw forecast is within a small (configurable) margin of the realized load (0.0-1.0).

                                    • Copy linkgroups array of object

                                      One entry per configured group in the requested dimension.

                                      Show child attributes
                                      • Copy linkgroups[].groupId string

                                        The group identifier within the requested dimension. For system:asset_composition the configured groups are ev (households with at least an EV) and ev_pv (households with an EV and physical or virtual solar).

                                      • Copy linkgroups[].assetCount integer

                                        The number of unique assets represented by the containing forecast or realized-load chunk.

                                      • Copy linkgroups[].chunks array of object

                                        The forecast chunks aggregated across the assets in this group.

                                        Show child attributes
                                        • Copy linkgroups[].chunks[].timestamp string<date-time>

                                          The start timestamp of the chunk.

                                        • Copy linkgroups[].chunks[].forecast object

                                          Forecast attributes for this chunk, with a confidence score.

                                          Show child attributes
                                          • Copy linkgroups[].chunks[].forecast.expectedKw number

                                            The expected mean load in kW.

                                          • Copy linkgroups[].chunks[].forecast.minimumKw number

                                            The achievable minimum mean load in kW.

                                          • Copy linkgroups[].chunks[].forecast.maximumKw number

                                            The achievable maximum mean load in kW.

                                          • Copy linkgroups[].chunks[].forecast.confidence number

                                            Probability that the expectedKw forecast is within a small (configurable) margin of the realized load (0.0-1.0).

                                    • Copy linkunassigned object

                                      The shape contribution of assets without a resolved group assignment in the requested dimension.

                                      Show child attributes
                                      • Copy linkunassigned.assetCount integer

                                        The number of unique assets represented by the containing forecast or realized-load chunk.

                                      • Copy linkunassigned.chunks array of object

                                        The forecast chunks aggregated across assets without a resolved group assignment.

                                        Show child attributes
                                        • Copy linkunassigned.chunks[].timestamp string<date-time>

                                          The start timestamp of the chunk.

                                        • Copy linkunassigned.chunks[].forecast object

                                          Forecast attributes for this chunk, with a confidence score.

                                          Show child attributes
                                          • Copy linkunassigned.chunks[].forecast.expectedKw number

                                            The expected mean load in kW.

                                          • Copy linkunassigned.chunks[].forecast.minimumKw number

                                            The achievable minimum mean load in kW.

                                          • Copy linkunassigned.chunks[].forecast.maximumKw number

                                            The achievable maximum mean load in kW.

                                          • Copy linkunassigned.chunks[].forecast.confidence number

                                            Probability that the expectedKw forecast is within a small (configurable) margin of the realized load (0.0-1.0).

                                    Copy linkResponse 400

                                    Invalid request parameters, unknown dimension, or the Flex Shape API is not activated for this client.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Get flex shape history

                                    GET /flex/shape/{zoneId}/history

                                    Get the historical realized fleet load and envelope for a zone over a time range. The realized counterpart to the GET /flex/shape forecast. Pass groupBy to segment the realized load by a configured dimension (one entry per group plus an unassigned bucket, with membership frozen when each chunk is measured); omit it for the total-only response.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Query parameters
                                    Copy linkfrom string<date-time> Required

                                    Start of the time range (UTC).

                                    Copy linkto string<date-time> Required

                                    End of the time range (UTC, exclusive). The range must be 31 days or less.

                                    Copy linkgroupBy string Optional

                                    Segment the realized load by a configured dimension. When set, the response is broken down into one entry per group plus an unassigned bucket, with membership frozen when each chunk is measured. Customer-configured dimensions snapshot location assignments; system:asset_composition snapshots the Enode user's household composition for the EV/EV+solar split. Omit for the total-only response.

                                    Copy linkResponse 200

                                    History retrieved. The segmented shape is returned when groupBy is set, otherwise the total-only shape.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this historical load belongs to.

                                    • Copy linkfrom string<date-time>

                                      Start of the queried time range.

                                    • Copy linkto string<date-time>

                                      End of the queried time range.

                                    • Copy linkchunkSizeMinutes number

                                      The size of each chunk in minutes.

                                    • Copy linkchunks array of object

                                      The realized load chunks persisted for the queried range.

                                      Show child attributes
                                      • Copy linkchunks[].timestamp string<date-time>

                                        The start timestamp of the completed chunk.

                                      • Copy linkchunks[].loadKw number

                                        The realized mean load in kW.

                                      • Copy linkchunks[].minimumKw number or null

                                        The achievable minimum mean load in kW, time-averaged over the chunk. Null when no plugged-in eligible fleet was present during the chunk.

                                      • Copy linkchunks[].maximumKw number or null

                                        The achievable maximum mean load in kW, time-averaged over the chunk. Null when no plugged-in eligible fleet was present during the chunk.

                                      • Copy linkchunks[].assetCount integer

                                        The number of unique assets represented by the containing forecast or realized-load chunk.

                                    Copy linkResponse 400

                                    Invalid query parameters, or the Flex Shape API is not activated for this client.

                                    Was this section helpful?

                                    Preview shape update

                                    POST /flex/shape/{zoneId}/preview

                                    Preview the effect of constraint changes on the flex shape without persisting them. Returns the shape as it would look after applying the provided chunk updates.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH
                                    Attributes
                                    • Copy linkchunks array of object Required

                                      The chunks to update. Each entry sets or clears a constraint at the given timestamp.

                                      Show child attributes
                                      • Copy linkchunks[].timestamp string<date-time> Required

                                        The timestamp of the chunk to set or clear.

                                      • Copy linkchunks[].relativeSetpoint number or null Required

                                        The relative setpoint constraint in kW. Set to null to remove an existing constraint.

                                    Copy linkResponse 200

                                    Preview shape retrieved.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this shape belongs to.

                                    • Copy linkcomputedAt string<date-time>

                                      When this shape was computed.

                                    • Copy linkchunkSizeMinutes number

                                      The size of each chunk in minutes.

                                    • Copy linkrevisionId string

                                      Revision identifier derived from the underlying forecast data. Changes when a recomputation produces different data; identical data yields the same identifier.

                                    • Copy linkassetCount integer

                                      The number of unique assets represented by the containing forecast or realized-load chunk.

                                    • Copy linkstartAt string<date-time>

                                      The timestamp of the first chunk.

                                    • Copy linkendAt string<date-time>

                                      The timestamp after the last chunk.

                                    • Copy linkchunks array of object

                                      The forecast chunks aggregated across all assets in the zone.

                                      Show child attributes
                                      • Copy linkchunks[].timestamp string<date-time>

                                        The start timestamp of the chunk.

                                      • Copy linkchunks[].forecast object

                                        Forecast attributes for this chunk, with a confidence score.

                                        Show child attributes
                                        • Copy linkchunks[].forecast.expectedKw number

                                          The expected mean load in kW.

                                        • Copy linkchunks[].forecast.minimumKw number

                                          The achievable minimum mean load in kW.

                                        • Copy linkchunks[].forecast.maximumKw number

                                          The achievable maximum mean load in kW.

                                        • Copy linkchunks[].forecast.confidence number

                                          Probability that the expectedKw forecast is within a small (configurable) margin of the realized load (0.0-1.0).

                                      • Copy linkchunks[].relativeSetpoint number

                                        The relative setpoint constraint applied to this chunk, in kW. 0 means no constraint.

                                    • Copy linkdeliverable array of object

                                      Per-chunk accounting of how requested relative setpoints map to claimed asset schedules. This field is only included for clients with the flexShapeDeliverableAccounting feature flag enabled, and is omitted otherwise.

                                      Show child attributes
                                      • Copy linkdeliverable[].timestamp string<date-time>

                                        The start timestamp of the chunk.

                                      • Copy linkdeliverable[].requestedKw number

                                        The requested relative setpoint for this chunk, in kW.

                                      • Copy linkdeliverable[].claimableNowKw number

                                        The unweighted constrained-minus-optimal load currently claimable by live sessions, in kW.

                                      • Copy linkdeliverable[].claimableIfPredictedKw number

                                        The unweighted constrained-minus-optimal load claimable if predicted arrivals materialize, in kW.

                                      • Copy linkdeliverable[].unabsorbedKw number

                                        The requested setpoint not accounted for by claimed asset schedules, in kW.

                                      • Copy linkdeliverable[].pendingArrivalsKw number

                                        The unabsorbed setpoint magnitude expected to be recruitable from sessions not yet claimed, as they materialize, in kW.

                                      • Copy linkdeliverable[].infeasibleKw number

                                        The unabsorbed setpoint magnitude beyond what the fleet's remaining sessions can deliver, in kW.

                                    Copy linkResponse 400

                                    Invalid request parameters, or the Flex Shape API is not activated for this client.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Get flex status

                                    GET /flex/shape/{zoneId}/status

                                    Health indicators for a zone. Trading systems use these as circuit-breaker inputs to detect unusual or unpredictable behavior.

                                    Copy linkRequest

                                    Path parameters
                                    Copy linkzoneId string Required

                                    The zone identifier. Corresponds to a market bidding zone (e.g., NO1, BE, SE3).

                                    Possible enum values:

                                      NO1NO2NO3NO4NO5SE1SE2SE3SE4DK1DK2FIEELVLTATBEGERFRNLPLESPTCH

                                    Copy linkResponse 200

                                    Status retrieved.

                                    Attributes
                                    • Copy linkzoneId string

                                      The zone this status belongs to.

                                    • Copy linkcomputedAt string<date-time>

                                      When this status was computed.

                                    • Copy linkisForecastStable boolean

                                      Whether the forecast revision variance of near-term horizons is within configured bounds.

                                    • Copy linkisSolvent boolean

                                      Whether the execution engine has sufficient inventory of asset flexibility to fulfill its plans.

                                    • Copy linkisControlNominal boolean

                                      Whether the success rate of asset control actions is within typical expectations.

                                    Copy linkResponse 400

                                    Invalid request parameters, or the Flex Shape API is not activated for this client.

                                    Copy linkResponse 404

                                    Zone not found.

                                    Was this section helpful?

                                    Webhook events

                                    user:vehicle:discovered

                                    Occurs whenever a new vehicle is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:vehicle:discovered
                                    • Copy linkvehicle object Required
                                      Show child attributes
                                      • Copy linkvehicle.id string Required

                                        Vehicle ID

                                      • Copy linkvehicle.userId string Required

                                        The ID of the user that linked this vehicle.

                                      • Copy linkvehicle.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
                                      • Copy linkvehicle.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the vehicle was initially linked.

                                      • Copy linkvehicle.isReachable boolean or null Required

                                        Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

                                      • Copy linkvehicle.information object Required

                                        Descriptive information about the Vehicle.

                                        Show child attributes
                                        • Copy linkvehicle.information.vin string or null Required

                                          Vehicle VIN

                                        • Copy linkvehicle.information.brand string or null Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkvehicle.information.model string or null Required

                                          Vehicle model

                                        • Copy linkvehicle.information.year number or null Required

                                          Vehicle production year

                                        • Copy linkvehicle.information.displayName string or null Required

                                          User-defined vehicle nickname.

                                        • Copy linkvehicle.information.imageUrl string or null Required

                                          URL to an image of the vehicle model. null when not available.

                                      • Copy linkvehicle.chargeState object Required

                                        Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkvehicle.chargeState.batteryLevel number or null Required

                                          Remaining battery in percent

                                        • Copy linkvehicle.chargeState.range number or null Required

                                          Estimated remaining kilometers

                                        • Copy linkvehicle.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

                                        • Copy linkvehicle.chargeState.isCharging boolean or null Required

                                          Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

                                        • Copy linkvehicle.chargeState.isFullyCharged boolean or null Required

                                          Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

                                        • Copy linkvehicle.chargeState.batteryCapacity number or null Required

                                          Vehicle's usable battery capacity in kWh.

                                        • Copy linkvehicle.chargeState.chargeLimit number or null Required

                                          Charge limit, as a percent of batteryCapacity.

                                          When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

                                        • Copy linkvehicle.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.chargeTimeRemaining number or null Required

                                          Estimated time until the current charging intent is completed, in minutes.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                        • Copy linkvehicle.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          The maximum current that the vehicle can draw from the charger, in amps.

                                        • Copy linkvehicle.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
                                          • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
                                          • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
                                          • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkvehicle.chargeState.pluggedInChargerId string or null Optional

                                          ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkvehicle.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

                                          Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

                                      • Copy linkvehicle.smartChargingPolicy object Required

                                        Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

                                        Show child attributes
                                        • Copy linkvehicle.smartChargingPolicy.isEnabled boolean Required

                                          When enabled, this vehicle's charging status may be controlled by Smart Charging

                                        • Copy linkvehicle.smartChargingPolicy.deadline string or null Required

                                          The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

                                        • Copy linkvehicle.smartChargingPolicy.minimumChargeLimit number Required

                                          Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

                                      • Copy linkvehicle.odometer object Required

                                        Vehicle's odometer reading in kilometers with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.odometer.distance number or null Required

                                          Odometer in kilometers

                                        • Copy linkvehicle.odometer.lastUpdated string<date-time> or null Required

                                          Time of the last odometer update (ISO 8601 UTC timestamp)

                                      • Copy linkvehicle.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific vehicle.

                                        When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

                                        Show child attributes
                                        • Copy linkvehicle.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.location object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.location.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.location.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.odometer object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.odometer.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.odometer.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.smartCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.smartCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.smartCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.refreshState object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.refreshState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.refreshState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkvehicle.scopes array of string Required

                                        Scopes that the user has granted for this vehicle.

                                      • Copy linkvehicle.location object Required

                                        Vehicle's GPS coordinates with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkvehicle.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkvehicle.location.lastUpdated string<date-time> or null Required

                                          Time of last received location

                                        • Copy linkvehicle.location.id string<uuid> or null Required

                                          ID of the location the vehicle is currently positioned at (if any).

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:vehicle:updated

                                    Occurs whenever a vehicle's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:vehicle:updated
                                    • Copy linkvehicle object Required
                                      Show child attributes
                                      • Copy linkvehicle.id string Required

                                        Vehicle ID

                                      • Copy linkvehicle.userId string Required

                                        The ID of the user that linked this vehicle.

                                      • Copy linkvehicle.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
                                      • Copy linkvehicle.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the vehicle was initially linked.

                                      • Copy linkvehicle.isReachable boolean or null Required

                                        Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

                                      • Copy linkvehicle.information object Required

                                        Descriptive information about the Vehicle.

                                        Show child attributes
                                        • Copy linkvehicle.information.vin string or null Required

                                          Vehicle VIN

                                        • Copy linkvehicle.information.brand string or null Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkvehicle.information.model string or null Required

                                          Vehicle model

                                        • Copy linkvehicle.information.year number or null Required

                                          Vehicle production year

                                        • Copy linkvehicle.information.displayName string or null Required

                                          User-defined vehicle nickname.

                                        • Copy linkvehicle.information.imageUrl string or null Required

                                          URL to an image of the vehicle model. null when not available.

                                      • Copy linkvehicle.chargeState object Required

                                        Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkvehicle.chargeState.batteryLevel number or null Required

                                          Remaining battery in percent

                                        • Copy linkvehicle.chargeState.range number or null Required

                                          Estimated remaining kilometers

                                        • Copy linkvehicle.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

                                        • Copy linkvehicle.chargeState.isCharging boolean or null Required

                                          Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

                                        • Copy linkvehicle.chargeState.isFullyCharged boolean or null Required

                                          Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

                                        • Copy linkvehicle.chargeState.batteryCapacity number or null Required

                                          Vehicle's usable battery capacity in kWh.

                                        • Copy linkvehicle.chargeState.chargeLimit number or null Required

                                          Charge limit, as a percent of batteryCapacity.

                                          When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

                                        • Copy linkvehicle.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.chargeTimeRemaining number or null Required

                                          Estimated time until the current charging intent is completed, in minutes.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                        • Copy linkvehicle.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          The maximum current that the vehicle can draw from the charger, in amps.

                                        • Copy linkvehicle.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
                                          • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
                                          • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
                                          • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkvehicle.chargeState.pluggedInChargerId string or null Optional

                                          ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkvehicle.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

                                          Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

                                      • Copy linkvehicle.smartChargingPolicy object Required

                                        Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

                                        Show child attributes
                                        • Copy linkvehicle.smartChargingPolicy.isEnabled boolean Required

                                          When enabled, this vehicle's charging status may be controlled by Smart Charging

                                        • Copy linkvehicle.smartChargingPolicy.deadline string or null Required

                                          The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

                                        • Copy linkvehicle.smartChargingPolicy.minimumChargeLimit number Required

                                          Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

                                      • Copy linkvehicle.odometer object Required

                                        Vehicle's odometer reading in kilometers with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.odometer.distance number or null Required

                                          Odometer in kilometers

                                        • Copy linkvehicle.odometer.lastUpdated string<date-time> or null Required

                                          Time of the last odometer update (ISO 8601 UTC timestamp)

                                      • Copy linkvehicle.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific vehicle.

                                        When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

                                        Show child attributes
                                        • Copy linkvehicle.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.location object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.location.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.location.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.odometer object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.odometer.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.odometer.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.smartCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.smartCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.smartCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.refreshState object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.refreshState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.refreshState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkvehicle.scopes array of string Required

                                        Scopes that the user has granted for this vehicle.

                                      • Copy linkvehicle.location object Required

                                        Vehicle's GPS coordinates with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkvehicle.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkvehicle.location.lastUpdated string<date-time> or null Required

                                          Time of last received location

                                        • Copy linkvehicle.location.id string<uuid> or null Required

                                          ID of the location the vehicle is currently positioned at (if any).

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:vehicle:deleted

                                    Occurs whenever a vehicle is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:vehicle:deleted
                                    • Copy linkvehicle object Required
                                      Show child attributes
                                      • Copy linkvehicle.id string Required

                                        Vehicle ID

                                      • Copy linkvehicle.userId string Required

                                        The ID of the user that linked this vehicle.

                                      • Copy linkvehicle.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ACURAAUDIBMWJAGUARLANDROVERMINIPORSCHERENAULTSEATSKODATESLAVOLKSWAGENVOLVOXPENGKIAHYUNDAIPEUGEOTOPELDSMERCEDESFORDTOYOTALEXUSNISSANCITROENCUPRAVAUXHALLFIATRIVIANNIOCHEVROLETCADILLACGMCHONDAPOLESTARSUBARUJEEPMAZDAMGCHRYSLERDODGERAMALFAROMEOLANCIALUCIDBYDDACIAALPINE
                                      • Copy linkvehicle.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the vehicle was initially linked.

                                      • Copy linkvehicle.isReachable boolean or null Required

                                        Indicates whether Enode can currently access live data from the vehicle. If the vehicle is not reachable, data updates will be delayed.

                                      • Copy linkvehicle.information object Required

                                        Descriptive information about the Vehicle.

                                        Show child attributes
                                        • Copy linkvehicle.information.vin string or null Required

                                          Vehicle VIN

                                        • Copy linkvehicle.information.brand string or null Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkvehicle.information.model string or null Required

                                          Vehicle model

                                        • Copy linkvehicle.information.year number or null Required

                                          Vehicle production year

                                        • Copy linkvehicle.information.displayName string or null Required

                                          User-defined vehicle nickname.

                                        • Copy linkvehicle.information.imageUrl string or null Required

                                          URL to an image of the vehicle model. null when not available.

                                      • Copy linkvehicle.chargeState object Required

                                        Latest information about the electric or hybrid battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkvehicle.chargeState.batteryLevel number or null Required

                                          Remaining battery in percent

                                        • Copy linkvehicle.chargeState.range number or null Required

                                          Estimated remaining kilometers

                                        • Copy linkvehicle.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the vehicle is connected to a charging box (regardless of whether it is actually charging)

                                        • Copy linkvehicle.chargeState.isCharging boolean or null Required

                                          Indicates whether the vehicle is currently receiving power from the charger and actively charging its battery.

                                        • Copy linkvehicle.chargeState.isFullyCharged boolean or null Required

                                          Indicates whether the vehicle is fully charged. 'Fully charged' may be a batteryLevel of less than 100 if a chargeLimit has been configured in the vehicle. This will be null when powerDeliveryState is UNKNOWN.

                                        • Copy linkvehicle.chargeState.batteryCapacity number or null Required

                                          Vehicle's usable battery capacity in kWh.

                                        • Copy linkvehicle.chargeState.chargeLimit number or null Required

                                          Charge limit, as a percent of batteryCapacity.

                                          When null, the vendor did not report a charge limit when we last received data from them. We recommend assuming the limit is 100%.

                                        • Copy linkvehicle.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.chargeTimeRemaining number or null Required

                                          Estimated time until the current charging intent is completed, in minutes.

                                          This property is only available when the vehicle is charging, and is null any other time.

                                        • Copy linkvehicle.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                        • Copy linkvehicle.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          The maximum current that the vehicle can draw from the charger, in amps.

                                        • Copy linkvehicle.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The vehicle is actively receiving power from the charger, causing the battery level to increase.
                                          • PLUGGED_IN:COMPLETE: The charging process has finished and the vehicle's battery has reached the target charge limit.
                                          • PLUGGED_IN:STOPPED: The charging process has been intentionally stopped by either the vehicle or the charger. The vehicle is still plugged in and waiting for the charging process to resume.
                                          • PLUGGED_IN:NO_POWER: The vehicle attempted to initialize charging, however no external power was available. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The vehicle is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:COMPLETEPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkvehicle.chargeState.pluggedInChargerId string or null Optional

                                          ID of the charger currently plugged into the vehicle. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkvehicle.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when the vehicle is not plugged into a charger or when the value is unavailable from the vendor.

                                          Early Adopter: This property is only available for early adopters of Set Charge Rate LimitAPI.

                                      • Copy linkvehicle.smartChargingPolicy object Required

                                        Smart Charging configuration properties. Configured via Update Vehicle Smart Charging PolicyAPI.

                                        Show child attributes
                                        • Copy linkvehicle.smartChargingPolicy.isEnabled boolean Required

                                          When enabled, this vehicle's charging status may be controlled by Smart Charging

                                        • Copy linkvehicle.smartChargingPolicy.deadline string or null Required

                                          The hour-minute deadline for fully charging the vehicle. Smart charging does not work without setting a deadline. If a timezone is set on the location at which the smart charging occurs, the deadline is interpreted in that timezone, otherwise UTC is used.

                                        • Copy linkvehicle.smartChargingPolicy.minimumChargeLimit number Required

                                          Proceed to charge promptly, disregarding energy prices, until the vehicle achieves this preset minimum limit. Please note that this limit cannot exceed the vehicle's maximum charge limit. The default setting is zero. The unit of measure is percentage.

                                      • Copy linkvehicle.odometer object Required

                                        Vehicle's odometer reading in kilometers with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.odometer.distance number or null Required

                                          Odometer in kilometers

                                        • Copy linkvehicle.odometer.lastUpdated string<date-time> or null Required

                                          Time of the last odometer update (ISO 8601 UTC timestamp)

                                      • Copy linkvehicle.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific vehicle.

                                        When the vehicle is paired with a linked charger, each capability's interventionIds merge interventions from both assets. See Step 4: Handle unified interventions for how charger interventions are surfaced, when vehicle interventions are suppressed, and how the recommended LinkAdditionalAsset ("link a charger") intervention behaves.

                                        Show child attributes
                                        • Copy linkvehicle.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.location object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.location.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.location.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.odometer object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.odometer.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.odometer.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.smartCharging object Required
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.smartCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.smartCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.refreshState object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.refreshState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.refreshState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkvehicle.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkvehicle.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkvehicle.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkvehicle.scopes array of string Required

                                        Scopes that the user has granted for this vehicle.

                                      • Copy linkvehicle.location object Required

                                        Vehicle's GPS coordinates with timestamp

                                        Show child attributes
                                        • Copy linkvehicle.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkvehicle.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkvehicle.location.lastUpdated string<date-time> or null Required

                                          Time of last received location

                                        • Copy linkvehicle.location.id string<uuid> or null Required

                                          ID of the location the vehicle is currently positioned at (if any).

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:charger:discovered

                                    Occurs whenever a new charger is discovered for a user.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:charger:discovered
                                    • Copy linkcharger object Required
                                      Show child attributes
                                      • Copy linkcharger.id string Required

                                        Charger ID

                                      • Copy linkcharger.userId string Required

                                        The ID of the user that linked this charger.

                                      • Copy linkcharger.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
                                      • Copy linkcharger.lastSeen string<date-time> Required

                                        The last time Enode communicated with the charger.

                                      • Copy linkcharger.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

                                      • Copy linkcharger.chargeState object Required

                                        Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkcharger.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

                                        • Copy linkcharger.chargeState.isCharging boolean or null Required

                                          Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

                                        • Copy linkcharger.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the charger is actively charging a vehicle, and is null any other time.

                                        • Copy linkcharger.chargeState.lastUpdated string<date-time> or null Required

                                          Time of latest charge state update

                                        • Copy linkcharger.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          Desired max current in amperes, if set

                                        • Copy linkcharger.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
                                          • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
                                          • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkcharger.chargeState.pluggedInVehicleId string or null Optional

                                          ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkcharger.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when unavailable from the vendor.

                                          Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

                                      • Copy linkcharger.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific charger

                                        Show child attributes
                                        • Copy linkcharger.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkcharger.scopes array of string Required

                                        Scopes that the user has granted for this charger.

                                      • Copy linkcharger.information object Required

                                        Descriptive information about the Charger

                                        Show child attributes
                                        • Copy linkcharger.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkcharger.information.model string Required

                                          Charger model

                                        • Copy linkcharger.information.displayName string or null Required

                                          Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

                                        • Copy linkcharger.information.year number or null Required

                                          Charger production year

                                        • Copy linkcharger.information.serialNumber string Required

                                          Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

                                        • Copy linkcharger.information.imageUrl string or null Required

                                          URL to an image of the charger model. null when not available.

                                      • Copy linkcharger.location object Required
                                        Show child attributes
                                        • Copy linkcharger.location.id string<uuid> or null Required

                                          ID of the location the charger is currently positioned at (if any).

                                        • Copy linkcharger.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:charger:updated

                                    Occurs whenever a charger is updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:charger:updated
                                    • Copy linkcharger object Required
                                      Show child attributes
                                      • Copy linkcharger.id string Required

                                        Charger ID

                                      • Copy linkcharger.userId string Required

                                        The ID of the user that linked this charger.

                                      • Copy linkcharger.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
                                      • Copy linkcharger.lastSeen string<date-time> Required

                                        The last time Enode communicated with the charger.

                                      • Copy linkcharger.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

                                      • Copy linkcharger.chargeState object Required

                                        Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkcharger.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

                                        • Copy linkcharger.chargeState.isCharging boolean or null Required

                                          Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

                                        • Copy linkcharger.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the charger is actively charging a vehicle, and is null any other time.

                                        • Copy linkcharger.chargeState.lastUpdated string<date-time> or null Required

                                          Time of latest charge state update

                                        • Copy linkcharger.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          Desired max current in amperes, if set

                                        • Copy linkcharger.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
                                          • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
                                          • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkcharger.chargeState.pluggedInVehicleId string or null Optional

                                          ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkcharger.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when unavailable from the vendor.

                                          Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

                                      • Copy linkcharger.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific charger

                                        Show child attributes
                                        • Copy linkcharger.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkcharger.scopes array of string Required

                                        Scopes that the user has granted for this charger.

                                      • Copy linkcharger.information object Required

                                        Descriptive information about the Charger

                                        Show child attributes
                                        • Copy linkcharger.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkcharger.information.model string Required

                                          Charger model

                                        • Copy linkcharger.information.displayName string or null Required

                                          Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

                                        • Copy linkcharger.information.year number or null Required

                                          Charger production year

                                        • Copy linkcharger.information.serialNumber string Required

                                          Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

                                        • Copy linkcharger.information.imageUrl string or null Required

                                          URL to an image of the charger model. null when not available.

                                      • Copy linkcharger.location object Required
                                        Show child attributes
                                        • Copy linkcharger.location.id string<uuid> or null Required

                                          ID of the location the charger is currently positioned at (if any).

                                        • Copy linkcharger.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:charger:deleted

                                    Occurs whenever a charger is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:charger:deleted
                                    • Copy linkcharger object Required
                                      Show child attributes
                                      • Copy linkcharger.id string Required

                                        Charger ID

                                      • Copy linkcharger.userId string Required

                                        The ID of the user that linked this charger.

                                      • Copy linkcharger.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ZAPTECEASEEWALLBOXCHARGEAMPSGOECHARGEPOINTENELXTESLAOHMEGAROSCHNEIDERPODPOINTKEBAMYENERGIHEIDELBERGELLIINDRAPEBLAR
                                      • Copy linkcharger.lastSeen string<date-time> Required

                                        The last time Enode communicated with the charger.

                                      • Copy linkcharger.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the charger. If the charger is not reachable, data updates will be delayed.

                                      • Copy linkcharger.chargeState object Required

                                        Latest information about the charger. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkcharger.chargeState.isPluggedIn boolean or null Required

                                          Indicates whether the charger has a vehicle plugged into it (regardless of whether that vehicle is actually charging)

                                        • Copy linkcharger.chargeState.isCharging boolean or null Required

                                          Indicates whether the charger is currently delivering power to the vehicle and actively charging its battery.

                                        • Copy linkcharger.chargeState.chargeRate number or null Required

                                          The current charge rate in kW.

                                          This property is only available when the charger is actively charging a vehicle, and is null any other time.

                                        • Copy linkcharger.chargeState.lastUpdated string<date-time> or null Required

                                          Time of latest charge state update

                                        • Copy linkcharger.chargeState.maxCurrent number or null Deprecated

                                          Deprecated: Use chargeRateLimit instead.

                                          Desired max current in amperes, if set

                                        • Copy linkcharger.chargeState.powerDeliveryState string Required

                                          The current state of power delivery between the vehicle and charger.

                                          • UNKNOWN: The state of power delivery is currently unknown or chargeState.lastUpdated is more than 7 days ago.
                                          • UNPLUGGED: The vehicle is not connected to the charger.
                                          • PLUGGED_IN:INITIALIZING: The charging station is preparing to deliver power to the vehicle. It is expected for this state to shortly transition into PLUGGED_IN:CHARGING.
                                          • PLUGGED_IN:CHARGING: The charger is actively delivering power to the vehicle, causing the battery level to increase.
                                          • PLUGGED_IN:STOPPED: The vehicle is plugged in, but the charger has been stopped. It is possible to transition into a charging state by sending a start command.
                                          • PLUGGED_IN:NO_POWER: The charger attempted to initialize charging, however no external power was accepted by the vehicle. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:FAULT: A malfunction in the charging process is preventing power from being delivered. Possible causes include a charging cable not being properly locked, extreme temperatures, or malfunctions in either the charging station or the vehicle's internal system. It is not possible to transition into a charging state with a remote command until there is some user intervention to resolve the issue.
                                          • PLUGGED_IN:DISCHARGING: The charger is actively discharging by giving power to the home/grid, causing the battery level to decrease.

                                          Possible enum values:

                                            UNKNOWNUNPLUGGEDPLUGGED_IN:INITIALIZINGPLUGGED_IN:CHARGINGPLUGGED_IN:STOPPEDPLUGGED_IN:NO_POWERPLUGGED_IN:FAULTPLUGGED_IN:DISCHARGING
                                        • Copy linkcharger.chargeState.pluggedInVehicleId string or null Optional

                                          ID of the vehicle currently plugged into the charger. By default, this attribute will be null and will only be populated if:

                                          • The charger and the vehicle are linked to the same Enode userId.
                                          • AND Enode has determined that the vehicle and charger are currently plugged into each other.
                                        • Copy linkcharger.chargeState.chargeRateLimit number or null Optional

                                          The current charge rate limit in kW. Returns null when unavailable from the vendor.

                                          Beta: This property is available in beta as part of Set Charge Rate LimitAPI.

                                      • Copy linkcharger.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific charger

                                        Show child attributes
                                        • Copy linkcharger.capabilities.information object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.information.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.information.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.chargeState object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.chargeState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.chargeState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.startCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.startCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.startCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.stopCharging object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.stopCharging.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.stopCharging.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setMaxCurrent object Required
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setMaxCurrent.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setMaxCurrent.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkcharger.capabilities.setChargeRateLimit object Optional
                                          Show child attributes
                                          • Copy linkcharger.capabilities.setChargeRateLimit.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                          • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange object Required
                                            Show child attributes
                                            • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW object Required

                                              Allowed charge rate limit range in kW.

                                              Show child attributes
                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.min number or null Required

                                                The minimum charge rate limit in kW. Returns null when unavailable from the vendor.

                                              • Copy linkcharger.capabilities.setChargeRateLimit.allowedRange.kW.max number or null Required

                                                The maximum charge rate limit in kW. Returns null when unavailable from the vendor.

                                      • Copy linkcharger.scopes array of string Required

                                        Scopes that the user has granted for this charger.

                                      • Copy linkcharger.information object Required

                                        Descriptive information about the Charger

                                        Show child attributes
                                        • Copy linkcharger.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkcharger.information.model string Required

                                          Charger model

                                        • Copy linkcharger.information.displayName string or null Required

                                          Charger nickname set by the user in the vendor app. null when the vendor does not provide one.

                                        • Copy linkcharger.information.year number or null Required

                                          Charger production year

                                        • Copy linkcharger.information.serialNumber string Required

                                          Charger serial number. Most chargers have this, but some do not expose it. When missing we default to a vendor provided ID, which may be visible to the end user in their app.

                                        • Copy linkcharger.information.imageUrl string or null Required

                                          URL to an image of the charger model. null when not available.

                                      • Copy linkcharger.location object Required
                                        Show child attributes
                                        • Copy linkcharger.location.id string<uuid> or null Required

                                          ID of the location the charger is currently positioned at (if any).

                                        • Copy linkcharger.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hvac:discovered

                                    Occurs whenever a new HVAC is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hvac:discovered
                                    • Copy linkhvac object Required
                                      Show child attributes
                                      • Copy linkhvac.id string Required

                                        HVAC unit ID

                                      • Copy linkhvac.userId string Required

                                        The ID of the user that linked this hvac.

                                      • Copy linkhvac.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                                      • Copy linkhvac.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                                      • Copy linkhvac.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                                      • Copy linkhvac.consumptionRate number or null Required

                                        The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                                      • Copy linkhvac.information object Required

                                        Descriptive information about the HVAC unit

                                        Show child attributes
                                        • Copy linkhvac.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkhvac.information.model string or null Required

                                          Device model name

                                        • Copy linkhvac.information.displayName string Required

                                          Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkhvac.information.groupName string or null Required

                                          Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                                        • Copy linkhvac.information.category string Required

                                          Classification of the connected HVAC device.

                                          • HEATING: A direct heating device, such as an electric panel heater

                                          • COOLING: A direct cooling device, such as an air conditioner

                                          • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                                          • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                                          Possible enum values:

                                            HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                                      • Copy linkhvac.temperatureState object Required

                                        Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.temperatureState.currentTemperature number or null Required

                                          Current air temperature reported by device in degrees Celsius.

                                        • Copy linkhvac.temperatureState.isActive boolean Required

                                          Whether the HVAC unit is actively heating or cooling.

                                        • Copy linkhvac.temperatureState.lastUpdated string<date-time> or null Required

                                          Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                                      • Copy linkhvac.thermostatState object Required

                                        Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.thermostatState.mode string Required

                                          The current state of the HVAC unit.

                                          • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                                          • OFF: The HVAC unit is turned off.
                                          • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                                          • COOL: The HVAC unit will only cool to the given setpoint.
                                          • HEAT: The HVAC unit will only heat to the given setpoint

                                          Possible enum values:

                                            UNKNOWNOFFAUTOCOOLHEAT
                                        • Copy linkhvac.thermostatState.heatSetpoint number or null Required

                                          If mode allows, heat when currentTemperature falls below this point.

                                        • Copy linkhvac.thermostatState.coolSetpoint number or null Required

                                          If mode allows, cool when currentTemperature rises above this point.

                                        • Copy linkhvac.thermostatState.holdType string or null Required

                                          The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                                          Possible enum values:

                                            PERMANENTSCHEDULED
                                        • Copy linkhvac.thermostatState.lastUpdated string<date-time> or null Required

                                          Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                                      • Copy linkhvac.scopes array of string Required

                                        Scopes that the user has granted for this HVAC unit.

                                      • Copy linkhvac.capabilities object Required

                                        An object describing valid states for this HVAC unit.

                                        Show child attributes
                                        • Copy linkhvac.capabilities.capableModes array of string or null Required

                                          A list of valid modes for this HVAC unit.

                                        • Copy linkhvac.capabilities.coolSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.coolSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.coolSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.heatSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.heatSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.heatSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.setpointDifferenceRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setpointDifferenceRange.min number or null Required

                                            The minimum allowable difference, inclusive.

                                          • Copy linkhvac.capabilities.setpointDifferenceRange.max number or null Required

                                            The maximum allowable difference, inclusive.

                                        • Copy linkhvac.capabilities.setFollowSchedule object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setFollowSchedule.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setFollowSchedule.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkhvac.capabilities.setPermanentHold object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setPermanentHold.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setPermanentHold.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkhvac.location object Required
                                        Show child attributes
                                        • Copy linkhvac.location.id string<uuid> or null Required

                                          ID of the charging location the HVAC unit is housed at (if any)

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hvac:updated

                                    Occurs whenever an HVAC's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hvac:updated
                                    • Copy linkhvac object Required
                                      Show child attributes
                                      • Copy linkhvac.id string Required

                                        HVAC unit ID

                                      • Copy linkhvac.userId string Required

                                        The ID of the user that linked this hvac.

                                      • Copy linkhvac.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                                      • Copy linkhvac.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                                      • Copy linkhvac.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                                      • Copy linkhvac.consumptionRate number or null Required

                                        The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                                      • Copy linkhvac.information object Required

                                        Descriptive information about the HVAC unit

                                        Show child attributes
                                        • Copy linkhvac.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkhvac.information.model string or null Required

                                          Device model name

                                        • Copy linkhvac.information.displayName string Required

                                          Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkhvac.information.groupName string or null Required

                                          Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                                        • Copy linkhvac.information.category string Required

                                          Classification of the connected HVAC device.

                                          • HEATING: A direct heating device, such as an electric panel heater

                                          • COOLING: A direct cooling device, such as an air conditioner

                                          • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                                          • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                                          Possible enum values:

                                            HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                                      • Copy linkhvac.temperatureState object Required

                                        Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.temperatureState.currentTemperature number or null Required

                                          Current air temperature reported by device in degrees Celsius.

                                        • Copy linkhvac.temperatureState.isActive boolean Required

                                          Whether the HVAC unit is actively heating or cooling.

                                        • Copy linkhvac.temperatureState.lastUpdated string<date-time> or null Required

                                          Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                                      • Copy linkhvac.thermostatState object Required

                                        Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.thermostatState.mode string Required

                                          The current state of the HVAC unit.

                                          • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                                          • OFF: The HVAC unit is turned off.
                                          • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                                          • COOL: The HVAC unit will only cool to the given setpoint.
                                          • HEAT: The HVAC unit will only heat to the given setpoint

                                          Possible enum values:

                                            UNKNOWNOFFAUTOCOOLHEAT
                                        • Copy linkhvac.thermostatState.heatSetpoint number or null Required

                                          If mode allows, heat when currentTemperature falls below this point.

                                        • Copy linkhvac.thermostatState.coolSetpoint number or null Required

                                          If mode allows, cool when currentTemperature rises above this point.

                                        • Copy linkhvac.thermostatState.holdType string or null Required

                                          The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                                          Possible enum values:

                                            PERMANENTSCHEDULED
                                        • Copy linkhvac.thermostatState.lastUpdated string<date-time> or null Required

                                          Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                                      • Copy linkhvac.scopes array of string Required

                                        Scopes that the user has granted for this HVAC unit.

                                      • Copy linkhvac.capabilities object Required

                                        An object describing valid states for this HVAC unit.

                                        Show child attributes
                                        • Copy linkhvac.capabilities.capableModes array of string or null Required

                                          A list of valid modes for this HVAC unit.

                                        • Copy linkhvac.capabilities.coolSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.coolSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.coolSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.heatSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.heatSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.heatSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.setpointDifferenceRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setpointDifferenceRange.min number or null Required

                                            The minimum allowable difference, inclusive.

                                          • Copy linkhvac.capabilities.setpointDifferenceRange.max number or null Required

                                            The maximum allowable difference, inclusive.

                                        • Copy linkhvac.capabilities.setFollowSchedule object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setFollowSchedule.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setFollowSchedule.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkhvac.capabilities.setPermanentHold object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setPermanentHold.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setPermanentHold.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkhvac.location object Required
                                        Show child attributes
                                        • Copy linkhvac.location.id string<uuid> or null Required

                                          ID of the charging location the HVAC unit is housed at (if any)

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hvac:deleted

                                    Occurs whenever an HVAC is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hvac:deleted
                                    • Copy linkhvac object Required
                                      Show child attributes
                                      • Copy linkhvac.id string Required

                                        HVAC unit ID

                                      • Copy linkhvac.userId string Required

                                        The ID of the user that linked this hvac.

                                      • Copy linkhvac.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          TADOMILLADAXECOBEESENSIBOHONEYWELLRESIDEOMITSUBISHIMICROMATICNIBEPANASONICTOSHIBADAIKINNESTFUJITSUBOSCHNETATMO
                                      • Copy linkhvac.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the HVAC unit was initially linked.

                                      • Copy linkhvac.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the HVAC. If the HVAC is not reachable, data updates will be delayed.

                                      • Copy linkhvac.consumptionRate number or null Required

                                        The current rate of energy consumption in kW. An inactive HVAC will have a consumption rate of 0. HVACs not supporting consumption rate will report null. This value is currently only supported by a small number of devices.

                                      • Copy linkhvac.information object Required

                                        Descriptive information about the HVAC unit

                                        Show child attributes
                                        • Copy linkhvac.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkhvac.information.model string or null Required

                                          Device model name

                                        • Copy linkhvac.information.displayName string Required

                                          Name of the device, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkhvac.information.groupName string or null Required

                                          Name of the group the device belongs to, as set by the user on the device/vendor. Groups are typically presented as "rooms" or "zones".

                                        • Copy linkhvac.information.category string Required

                                          Classification of the connected HVAC device.

                                          • HEATING: A direct heating device, such as an electric panel heater

                                          • COOLING: A direct cooling device, such as an air conditioner

                                          • HEAT_PUMP: An air-to-air heat pump capable of both heating and cooling

                                          • AGGREGATOR: A device that is capable of controlling various HVAC systems behind it, such as a smart thermostat

                                          Possible enum values:

                                            HEATINGCOOLINGHEAT_PUMPAGGREGATOR
                                      • Copy linkhvac.temperatureState object Required

                                        Latest information about temperature. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.temperatureState.currentTemperature number or null Required

                                          Current air temperature reported by device in degrees Celsius.

                                        • Copy linkhvac.temperatureState.isActive boolean Required

                                          Whether the HVAC unit is actively heating or cooling.

                                        • Copy linkhvac.temperatureState.lastUpdated string<date-time> or null Required

                                          Time of last temperature state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer

                                      • Copy linkhvac.thermostatState object Required

                                        Latest information about the thermostat state. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkhvac.thermostatState.mode string Required

                                          The current state of the HVAC unit.

                                          • UNKNOWN: The mode of the HVAC unit is currently not available from the vendor or not supported by enode.
                                          • OFF: The HVAC unit is turned off.
                                          • AUTO: The HVAC unit will try to maintain the given setpoint by alternating between cooling and heating based on the ambient temperature
                                          • COOL: The HVAC unit will only cool to the given setpoint.
                                          • HEAT: The HVAC unit will only heat to the given setpoint

                                          Possible enum values:

                                            UNKNOWNOFFAUTOCOOLHEAT
                                        • Copy linkhvac.thermostatState.heatSetpoint number or null Required

                                          If mode allows, heat when currentTemperature falls below this point.

                                        • Copy linkhvac.thermostatState.coolSetpoint number or null Required

                                          If mode allows, cool when currentTemperature rises above this point.

                                        • Copy linkhvac.thermostatState.holdType string or null Required

                                          The duration the setpoints and mode are expected to be held. If SCHEDULED, the device is being controlled by an OEM schedule configured on the device.

                                          Possible enum values:

                                            PERMANENTSCHEDULED
                                        • Copy linkhvac.thermostatState.lastUpdated string<date-time> or null Required

                                          Time of last thermostat state update. Reflects when the OEM reported a change or Enode recorded a change in any field, whichever is newer.

                                      • Copy linkhvac.scopes array of string Required

                                        Scopes that the user has granted for this HVAC unit.

                                      • Copy linkhvac.capabilities object Required

                                        An object describing valid states for this HVAC unit.

                                        Show child attributes
                                        • Copy linkhvac.capabilities.capableModes array of string or null Required

                                          A list of valid modes for this HVAC unit.

                                        • Copy linkhvac.capabilities.coolSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.coolSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.coolSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.heatSetpointRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.heatSetpointRange.min number or null Required

                                            The minimum allowable temperature, inclusive.

                                          • Copy linkhvac.capabilities.heatSetpointRange.max number or null Required

                                            The maximum allowable temperature, inclusive.

                                        • Copy linkhvac.capabilities.setpointDifferenceRange object or null Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setpointDifferenceRange.min number or null Required

                                            The minimum allowable difference, inclusive.

                                          • Copy linkhvac.capabilities.setpointDifferenceRange.max number or null Required

                                            The maximum allowable difference, inclusive.

                                        • Copy linkhvac.capabilities.setFollowSchedule object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setFollowSchedule.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setFollowSchedule.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkhvac.capabilities.setPermanentHold object Required
                                          Show child attributes
                                          • Copy linkhvac.capabilities.setPermanentHold.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkhvac.capabilities.setPermanentHold.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkhvac.location object Required
                                        Show child attributes
                                        • Copy linkhvac.location.id string<uuid> or null Required

                                          ID of the charging location the HVAC unit is housed at (if any)

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:inverter:discovered

                                    Occurs whenever a new inverter is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:inverter:discovered
                                    • Copy linkinverter object Required

                                      Solar inverter object

                                      Show child attributes
                                      • Copy linkinverter.id string<uuid> Required

                                        Solar Inverter ID

                                      • Copy linkinverter.userId string Required

                                        The ID of the user that linked this inverter.

                                      • Copy linkinverter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                                      • Copy linkinverter.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the solar inverter was initially linked.

                                      • Copy linkinverter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                                      • Copy linkinverter.productionState object Required

                                        Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkinverter.productionState.productionRate number or null Required

                                          The current production rate in kW.

                                        • Copy linkinverter.productionState.isProducing boolean or null Required

                                          Whether the solar inverter is actively producing energy or not.

                                        • Copy linkinverter.productionState.totalLifetimeProduction number or null Required

                                          The total lifetime production in kWh.

                                        • Copy linkinverter.productionState.lastUpdated string<date-time> or null Required

                                          Time of last received production state update

                                      • Copy linkinverter.timezone string or null Required

                                        IANA TZ database timezone name representing the location of this inverter.

                                      • Copy linkinverter.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific inverter.

                                        Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                                        Show child attributes
                                        • Copy linkinverter.capabilities.productionState object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkinverter.capabilities.productionStatistics object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionStatistics.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionStatistics.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkinverter.scopes array of string Required

                                        Scopes that the user has granted for this inverter.

                                      • Copy linkinverter.information object Required

                                        Descriptive information about the solar inverter

                                        Show child attributes
                                        • Copy linkinverter.information.id string Required

                                          Solar inverter vendor ID

                                        • Copy linkinverter.information.sn string or null Required

                                          Solar inverter serial number

                                        • Copy linkinverter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkinverter.information.model string Required

                                          Solar inverter model

                                        • Copy linkinverter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkinverter.information.installationDate string<date-time> Required

                                          Solar inverter installation date

                                      • Copy linkinverter.location object Required

                                        Solar inverter's GPS coordinates

                                        Show child attributes
                                        • Copy linkinverter.location.id string<uuid> or null Required

                                          ID of the location the solar inverter is currently positioned at (if any).

                                        • Copy linkinverter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkinverter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkinverter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkinverter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:inverter:updated

                                    Occurs whenever an inverter's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:inverter:updated
                                    • Copy linkinverter object Required

                                      Solar inverter object

                                      Show child attributes
                                      • Copy linkinverter.id string<uuid> Required

                                        Solar Inverter ID

                                      • Copy linkinverter.userId string Required

                                        The ID of the user that linked this inverter.

                                      • Copy linkinverter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                                      • Copy linkinverter.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the solar inverter was initially linked.

                                      • Copy linkinverter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                                      • Copy linkinverter.productionState object Required

                                        Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkinverter.productionState.productionRate number or null Required

                                          The current production rate in kW.

                                        • Copy linkinverter.productionState.isProducing boolean or null Required

                                          Whether the solar inverter is actively producing energy or not.

                                        • Copy linkinverter.productionState.totalLifetimeProduction number or null Required

                                          The total lifetime production in kWh.

                                        • Copy linkinverter.productionState.lastUpdated string<date-time> or null Required

                                          Time of last received production state update

                                      • Copy linkinverter.timezone string or null Required

                                        IANA TZ database timezone name representing the location of this inverter.

                                      • Copy linkinverter.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific inverter.

                                        Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                                        Show child attributes
                                        • Copy linkinverter.capabilities.productionState object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkinverter.capabilities.productionStatistics object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionStatistics.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionStatistics.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkinverter.scopes array of string Required

                                        Scopes that the user has granted for this inverter.

                                      • Copy linkinverter.information object Required

                                        Descriptive information about the solar inverter

                                        Show child attributes
                                        • Copy linkinverter.information.id string Required

                                          Solar inverter vendor ID

                                        • Copy linkinverter.information.sn string or null Required

                                          Solar inverter serial number

                                        • Copy linkinverter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkinverter.information.model string Required

                                          Solar inverter model

                                        • Copy linkinverter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkinverter.information.installationDate string<date-time> Required

                                          Solar inverter installation date

                                      • Copy linkinverter.location object Required

                                        Solar inverter's GPS coordinates

                                        Show child attributes
                                        • Copy linkinverter.location.id string<uuid> or null Required

                                          ID of the location the solar inverter is currently positioned at (if any).

                                        • Copy linkinverter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkinverter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkinverter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkinverter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:inverter:deleted

                                    Occurs whenever an inverter is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:inverter:deleted
                                    • Copy linkinverter object Required

                                      Solar inverter object

                                      Show child attributes
                                      • Copy linkinverter.id string<uuid> Required

                                        Solar Inverter ID

                                      • Copy linkinverter.userId string Required

                                        The ID of the user that linked this inverter.

                                      • Copy linkinverter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          AFOREAPSYSTEMSCSISolarDeyeENPHASEFOXESSFRONIUSGIVENERGYGOODWEGROWATTHoymilesHUAWEIINVTSMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUNGROWSUNSYNKTESLATSUN
                                      • Copy linkinverter.lastSeen string<date-time> Required

                                        The last time Enode received live data or when the solar inverter was initially linked.

                                      • Copy linkinverter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the inverter. If the inverter is not reachable, data updates will be delayed.

                                      • Copy linkinverter.productionState object Required

                                        Latest information about solar production. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkinverter.productionState.productionRate number or null Required

                                          The current production rate in kW.

                                        • Copy linkinverter.productionState.isProducing boolean or null Required

                                          Whether the solar inverter is actively producing energy or not.

                                        • Copy linkinverter.productionState.totalLifetimeProduction number or null Required

                                          The total lifetime production in kWh.

                                        • Copy linkinverter.productionState.lastUpdated string<date-time> or null Required

                                          Time of last received production state update

                                      • Copy linkinverter.timezone string or null Required

                                        IANA TZ database timezone name representing the location of this inverter.

                                      • Copy linkinverter.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific inverter.

                                        Note: Sample-based statisticsAPI collected by Enode rely on the productionState capability and are not affected by this capability.

                                        Show child attributes
                                        • Copy linkinverter.capabilities.productionState object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionState.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionState.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkinverter.capabilities.productionStatistics object Required
                                          Show child attributes
                                          • Copy linkinverter.capabilities.productionStatistics.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkinverter.capabilities.productionStatistics.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkinverter.scopes array of string Required

                                        Scopes that the user has granted for this inverter.

                                      • Copy linkinverter.information object Required

                                        Descriptive information about the solar inverter

                                        Show child attributes
                                        • Copy linkinverter.information.id string Required

                                          Solar inverter vendor ID

                                        • Copy linkinverter.information.sn string or null Required

                                          Solar inverter serial number

                                        • Copy linkinverter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkinverter.information.model string Required

                                          Solar inverter model

                                        • Copy linkinverter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkinverter.information.installationDate string<date-time> Required

                                          Solar inverter installation date

                                      • Copy linkinverter.location object Required

                                        Solar inverter's GPS coordinates

                                        Show child attributes
                                        • Copy linkinverter.location.id string<uuid> or null Required

                                          ID of the location the solar inverter is currently positioned at (if any).

                                        • Copy linkinverter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkinverter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkinverter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkinverter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:inverter:statistics-updated

                                    Occurs whenever inverter statistics are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:inverter:statistics-updated
                                    • Copy linkstatistics object Required
                                      Show child attributes
                                      • Copy linkstatistics.timezone string Required

                                        The timezone of the inverter.

                                      • Copy linkstatistics.resolutions object Required
                                        Show child attributes
                                        • Copy linkstatistics.resolutions.QUARTER_HOUR object Optional
                                          Show child attributes
                                          • Copy linkstatistics.resolutions.QUARTER_HOUR.unit string Required

                                            The unit of measurement for power production data. Always kWh.

                                            Possible enum values:

                                              kWh
                                          • Copy linkstatistics.resolutions.QUARTER_HOUR.data array of object or null Required

                                            An array of data points representing the power production statistics.

                                            Show child attributes
                                            • Copy linkstatistics.resolutions.QUARTER_HOUR.data[].date string<date-time> Required

                                              Time bucket start as a RFC3339 timestamp. Offset may be Z or ±hh:mm. In the unlikely event that an inverter changes timezone, the offset from when the data was retrieved is used, not the inverter's current timezone.

                                            • Copy linkstatistics.resolutions.QUARTER_HOUR.data[].value number or null Required

                                              The energy produced (kWh) in the specified interval. Null if no data is available.

                                        • Copy linkstatistics.resolutions.DAY object Optional
                                          Show child attributes
                                          • Copy linkstatistics.resolutions.DAY.unit string Required

                                            The unit of measurement for power production data. Always kWh.

                                            Possible enum values:

                                              kWh
                                          • Copy linkstatistics.resolutions.DAY.data array of object or null Required

                                            An array of data points representing the power production statistics.

                                            Show child attributes
                                            • Copy linkstatistics.resolutions.DAY.data[].date string<date-time> Required

                                              Time bucket start as a RFC3339 timestamp. Offset may be Z or ±hh:mm. In the unlikely event that an inverter changes timezone, the offset from when the data was retrieved is used, not the inverter's current timezone.

                                            • Copy linkstatistics.resolutions.DAY.data[].value number or null Required

                                              The energy produced (kWh) in the specified interval. Null if no data is available.

                                      • Copy linkstatistics.inverterId string Required
                                      • Copy linkstatistics.day number or null Required
                                      • Copy linkstatistics.month number or null Required
                                      • Copy linkstatistics.year number Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:battery:discovered

                                    Occurs whenever a new battery is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:battery:discovered
                                    • Copy linkbattery object Required

                                      Battery object

                                      Show child attributes
                                      • Copy linkbattery.id string<uuid> Required

                                        Unique identifier for the battery object

                                      • Copy linkbattery.userId string Required

                                        The ID of the user that linked this battery.

                                      • Copy linkbattery.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                                      • Copy linkbattery.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the battery was initially linked.

                                      • Copy linkbattery.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

                                      • Copy linkbattery.chargeState object Required

                                        Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkbattery.chargeState.status string or null Required

                                          The power delivery state of the battery.

                                          Possible enum values:

                                            CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                                        • Copy linkbattery.chargeState.batteryCapacity number or null Required

                                          Battery capacity in kWh.

                                        • Copy linkbattery.chargeState.batteryLevel number or null Required

                                          Remaining battery charge level in percent.

                                        • Copy linkbattery.chargeState.chargeRate number or null Required

                                          The current charge rate in kW. A positive value indicates that the battery is charging.

                                        • Copy linkbattery.chargeState.dischargeLimit number or null Required

                                          Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                                        • Copy linkbattery.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                      • Copy linkbattery.config object Required
                                        Show child attributes
                                        • Copy linkbattery.config.operationMode string or null Required

                                          The current operation mode of the battery.

                                          • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                                          • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                                          • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                                          • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                                          Possible enum values:

                                            IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                                        • Copy linkbattery.config.lastUpdated string<date-time> or null Required

                                          Time of last received configuration update

                                      • Copy linkbattery.information object Required

                                        Descriptive information about the battery

                                        Show child attributes
                                        • Copy linkbattery.information.id string Required

                                          Battery vendor ID

                                        • Copy linkbattery.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkbattery.information.model string Required

                                          Battery model

                                        • Copy linkbattery.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkbattery.information.installationDate string<date-time> Required

                                          Battery installation date

                                      • Copy linkbattery.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific battery

                                        Show child attributes
                                        • Copy linkbattery.capabilities.exportFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.exportFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.exportFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.importFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.importFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.importFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.timeOfUse object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.timeOfUse.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.timeOfUse.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.selfReliance object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.selfReliance.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.selfReliance.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.idle object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.idle.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.idle.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkbattery.scopes array of string Required

                                        Scopes that the user has granted for this battery.

                                      • Copy linkbattery.location object Required

                                        Battery's GPS coordinates

                                        Show child attributes
                                        • Copy linkbattery.location.id string<uuid> or null Required

                                          ID of the location the battery is currently positioned at (if any).

                                        • Copy linkbattery.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkbattery.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkbattery.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkbattery.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:battery:updated

                                    Occurs whenever a battery's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:battery:updated
                                    • Copy linkbattery object Required

                                      Battery object

                                      Show child attributes
                                      • Copy linkbattery.id string<uuid> Required

                                        Unique identifier for the battery object

                                      • Copy linkbattery.userId string Required

                                        The ID of the user that linked this battery.

                                      • Copy linkbattery.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                                      • Copy linkbattery.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the battery was initially linked.

                                      • Copy linkbattery.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

                                      • Copy linkbattery.chargeState object Required

                                        Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkbattery.chargeState.status string or null Required

                                          The power delivery state of the battery.

                                          Possible enum values:

                                            CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                                        • Copy linkbattery.chargeState.batteryCapacity number or null Required

                                          Battery capacity in kWh.

                                        • Copy linkbattery.chargeState.batteryLevel number or null Required

                                          Remaining battery charge level in percent.

                                        • Copy linkbattery.chargeState.chargeRate number or null Required

                                          The current charge rate in kW. A positive value indicates that the battery is charging.

                                        • Copy linkbattery.chargeState.dischargeLimit number or null Required

                                          Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                                        • Copy linkbattery.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                      • Copy linkbattery.config object Required
                                        Show child attributes
                                        • Copy linkbattery.config.operationMode string or null Required

                                          The current operation mode of the battery.

                                          • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                                          • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                                          • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                                          • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                                          Possible enum values:

                                            IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                                        • Copy linkbattery.config.lastUpdated string<date-time> or null Required

                                          Time of last received configuration update

                                      • Copy linkbattery.information object Required

                                        Descriptive information about the battery

                                        Show child attributes
                                        • Copy linkbattery.information.id string Required

                                          Battery vendor ID

                                        • Copy linkbattery.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkbattery.information.model string Required

                                          Battery model

                                        • Copy linkbattery.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkbattery.information.installationDate string<date-time> Required

                                          Battery installation date

                                      • Copy linkbattery.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific battery

                                        Show child attributes
                                        • Copy linkbattery.capabilities.exportFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.exportFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.exportFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.importFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.importFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.importFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.timeOfUse object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.timeOfUse.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.timeOfUse.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.selfReliance object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.selfReliance.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.selfReliance.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.idle object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.idle.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.idle.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkbattery.scopes array of string Required

                                        Scopes that the user has granted for this battery.

                                      • Copy linkbattery.location object Required

                                        Battery's GPS coordinates

                                        Show child attributes
                                        • Copy linkbattery.location.id string<uuid> or null Required

                                          ID of the location the battery is currently positioned at (if any).

                                        • Copy linkbattery.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkbattery.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkbattery.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkbattery.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:battery:deleted

                                    Occurs whenever a battery is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:battery:deleted
                                    • Copy linkbattery object Required

                                      Battery object

                                      Show child attributes
                                      • Copy linkbattery.id string<uuid> Required

                                        Unique identifier for the battery object

                                      • Copy linkbattery.userId string Required

                                        The ID of the user that linked this battery.

                                      • Copy linkbattery.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLAXSOLISTESLASUNGROW
                                      • Copy linkbattery.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the battery was initially linked.

                                      • Copy linkbattery.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the battery. If the battery is not reachable, data updates will be delayed.

                                      • Copy linkbattery.chargeState object Required

                                        Latest information about the battery. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkbattery.chargeState.status string or null Required

                                          The power delivery state of the battery.

                                          Possible enum values:

                                            CHARGINGDISCHARGINGIDLEFAULTUNKNOWN
                                        • Copy linkbattery.chargeState.batteryCapacity number or null Required

                                          Battery capacity in kWh.

                                        • Copy linkbattery.chargeState.batteryLevel number or null Required

                                          Remaining battery charge level in percent.

                                        • Copy linkbattery.chargeState.chargeRate number or null Required

                                          The current charge rate in kW. A positive value indicates that the battery is charging.

                                        • Copy linkbattery.chargeState.dischargeLimit number or null Required

                                          Minimum charge level for a battery, expressed as a percentage. Batteries will not discharge below this user-set reserve level except in emergency power situations.

                                        • Copy linkbattery.chargeState.lastUpdated string<date-time> or null Required

                                          Time of last received charge state update

                                      • Copy linkbattery.config object Required
                                        Show child attributes
                                        • Copy linkbattery.config.operationMode string or null Required

                                          The current operation mode of the battery.

                                          • SELF_RELIANCE: Minimizes household reliance on the grid. Prioritizes using own energy from solar or battery for household consumption before importing from grid. Energy may be exported to the grid from solar, depending on excess solar and your user's settings in the OEM app.
                                          • TIME_OF_USE: Maximizes energy cost savings in accordance with a user-defined schedule matching a utility rate plan. Energy may be consumed from solar, battery, or grid sources, depending on the current prices and your user's settings in the OEM app. Energy may be exported to the grid from solar or battery sources, depending on current prices and your user's settings in the OEM app.
                                          • IMPORT_FOCUS: Prioritizes charging the battery. Uses excess solar energy for charging and will charge from grid if possible. Leveraged energy sources depend on the configuration of the battery. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • EXPORT_FOCUS: Prioritizes discharging energy stored in the battery back to the household and any excess to the grid. Grid exports often depend on local regulation and might require agreements with grid providers to be supported. Note: Focus modes target a certain battery behavior but are ultimately internal to the battery. Actual behavior might differ from the focus mode.
                                          • IDLE: Prevents the battery from charging or discharging. The battery remains inactive and maintains its current state of charge, even if there is available solar generation or energy demand from household consumption.
                                          • UNKNOWN: The mode of the battery is currently unknown. It might be possible to switch out of this mode and into one of the known modes. Actively returning to this mode is not possible.

                                          Possible enum values:

                                            IMPORT_FOCUSEXPORT_FOCUSTIME_OF_USESELF_RELIANCEIDLEUNKNOWN
                                        • Copy linkbattery.config.lastUpdated string<date-time> or null Required

                                          Time of last received configuration update

                                      • Copy linkbattery.information object Required

                                        Descriptive information about the battery

                                        Show child attributes
                                        • Copy linkbattery.information.id string Required

                                          Battery vendor ID

                                        • Copy linkbattery.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkbattery.information.model string Required

                                          Battery model

                                        • Copy linkbattery.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkbattery.information.installationDate string<date-time> Required

                                          Battery installation date

                                      • Copy linkbattery.capabilities object Required

                                        A collection of descriptors that describe the capabilities of this specific battery

                                        Show child attributes
                                        • Copy linkbattery.capabilities.exportFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.exportFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.exportFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.importFocus object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.importFocus.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.importFocus.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.timeOfUse object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.timeOfUse.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.timeOfUse.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.selfReliance object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.selfReliance.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.selfReliance.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkbattery.capabilities.idle object Required
                                          Show child attributes
                                          • Copy linkbattery.capabilities.idle.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkbattery.capabilities.idle.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkbattery.scopes array of string Required

                                        Scopes that the user has granted for this battery.

                                      • Copy linkbattery.location object Required

                                        Battery's GPS coordinates

                                        Show child attributes
                                        • Copy linkbattery.location.id string<uuid> or null Required

                                          ID of the location the battery is currently positioned at (if any).

                                        • Copy linkbattery.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkbattery.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkbattery.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkbattery.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:meter:discovered

                                    Occurs whenever a new meter is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:meter:discovered
                                    • Copy linkmeter object Required
                                      Show child attributes
                                      • Copy linkmeter.id string<uuid> Required

                                        Unique identifier for the meter object

                                      • Copy linkmeter.userId string Required

                                        The ID of the user that linked this meter.

                                      • Copy linkmeter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                                      • Copy linkmeter.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                                      • Copy linkmeter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                                      • Copy linkmeter.information object Required

                                        Descriptive information about the meter

                                        Show child attributes
                                        • Copy linkmeter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkmeter.information.model string Required

                                          Meter model

                                        • Copy linkmeter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkmeter.information.installationDate string<date-time> Required

                                          Meter installation date

                                      • Copy linkmeter.energyState object Required

                                        Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkmeter.energyState.power number or null Required

                                          The current power measured by the meter in kW.

                                          • Positive value: Power is imported from the grid to the site, indicating consumption.
                                          • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                                        • Copy linkmeter.energyState.lastUpdated string<date-time> or null Required

                                          Time of last received energy state update.

                                      • Copy linkmeter.location object Required

                                        Meter's GPS coordinates

                                        Show child attributes
                                        • Copy linkmeter.location.id string<uuid> or null Required

                                          ID of the location the meter is currently positioned at (if any).

                                        • Copy linkmeter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkmeter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkmeter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkmeter.capabilities object Required

                                        The specific meter's capabilities for recording energy consumption and production data.

                                        Show child attributes
                                        • Copy linkmeter.capabilities.measuresConsumption object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresConsumption.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresConsumption.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkmeter.capabilities.measuresProduction object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresProduction.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresProduction.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkmeter.scopes array of string Required

                                        Scopes that the user has granted for this meter.

                                      • Copy linkmeter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:meter:updated

                                    Occurs whenever a meter's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:meter:updated
                                    • Copy linkmeter object Required
                                      Show child attributes
                                      • Copy linkmeter.id string<uuid> Required

                                        Unique identifier for the meter object

                                      • Copy linkmeter.userId string Required

                                        The ID of the user that linked this meter.

                                      • Copy linkmeter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                                      • Copy linkmeter.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                                      • Copy linkmeter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                                      • Copy linkmeter.information object Required

                                        Descriptive information about the meter

                                        Show child attributes
                                        • Copy linkmeter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkmeter.information.model string Required

                                          Meter model

                                        • Copy linkmeter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkmeter.information.installationDate string<date-time> Required

                                          Meter installation date

                                      • Copy linkmeter.energyState object Required

                                        Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkmeter.energyState.power number or null Required

                                          The current power measured by the meter in kW.

                                          • Positive value: Power is imported from the grid to the site, indicating consumption.
                                          • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                                        • Copy linkmeter.energyState.lastUpdated string<date-time> or null Required

                                          Time of last received energy state update.

                                      • Copy linkmeter.location object Required

                                        Meter's GPS coordinates

                                        Show child attributes
                                        • Copy linkmeter.location.id string<uuid> or null Required

                                          ID of the location the meter is currently positioned at (if any).

                                        • Copy linkmeter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkmeter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkmeter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkmeter.capabilities object Required

                                        The specific meter's capabilities for recording energy consumption and production data.

                                        Show child attributes
                                        • Copy linkmeter.capabilities.measuresConsumption object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresConsumption.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresConsumption.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkmeter.capabilities.measuresProduction object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresProduction.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresProduction.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkmeter.scopes array of string Required

                                        Scopes that the user has granted for this meter.

                                      • Copy linkmeter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:meter:deleted

                                    Occurs whenever a meter is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:meter:deleted
                                    • Copy linkmeter object Required
                                      Show child attributes
                                      • Copy linkmeter.id string<uuid> Required

                                        Unique identifier for the meter object

                                      • Copy linkmeter.userId string Required

                                        The ID of the user that linked this meter.

                                      • Copy linkmeter.vendor string Required

                                        Machine-friendly name of the vendor. Use this in API requests.

                                        Possible enum values:

                                          ENPHASEGIVENERGYFOXESSHUAWEISMASOLAREDGESOLISSOLAXSUNGROWTESLA
                                      • Copy linkmeter.lastSeen string<date-time> Required

                                        The last time Enode successfully communicated with the vendor or when the meter was initially linked.

                                      • Copy linkmeter.isReachable boolean Required

                                        Indicates whether Enode can currently access live data from the meter. If the meter is not reachable, data updates will be delayed.

                                      • Copy linkmeter.information object Required

                                        Descriptive information about the meter

                                        Show child attributes
                                        • Copy linkmeter.information.brand string Required

                                          A formatted and properly cased OEM brand name, suitable for reading by humans. May contain special characters.

                                        • Copy linkmeter.information.model string Required

                                          Meter model

                                        • Copy linkmeter.information.siteName string Required

                                          Name of the site, as set by the user on the device/vendor. If no user-specified name is available, we construct a fallback name using the vendor/device/model names.

                                        • Copy linkmeter.information.installationDate string<date-time> Required

                                          Meter installation date

                                      • Copy linkmeter.energyState object Required

                                        Latest information about meter load. null values indicate we are unable to determine a value for the field based on the information coming from the vendor.

                                        Show child attributes
                                        • Copy linkmeter.energyState.power number or null Required

                                          The current power measured by the meter in kW.

                                          • Positive value: Power is imported from the grid to the site, indicating consumption.
                                          • Negative value: Power is exported to the grid, typically when the site generates excess electricity (e.g. from solar panels, or battery discharge).
                                        • Copy linkmeter.energyState.lastUpdated string<date-time> or null Required

                                          Time of last received energy state update.

                                      • Copy linkmeter.location object Required

                                        Meter's GPS coordinates

                                        Show child attributes
                                        • Copy linkmeter.location.id string<uuid> or null Required

                                          ID of the location the meter is currently positioned at (if any).

                                        • Copy linkmeter.location.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkmeter.location.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkmeter.location.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkmeter.capabilities object Required

                                        The specific meter's capabilities for recording energy consumption and production data.

                                        Show child attributes
                                        • Copy linkmeter.capabilities.measuresConsumption object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresConsumption.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresConsumption.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                        • Copy linkmeter.capabilities.measuresProduction object Required
                                          Show child attributes
                                          • Copy linkmeter.capabilities.measuresProduction.isCapable boolean Required

                                            The entity is fully capable of providing this data or functionality. If false, support is partial or missing. A capable entity (true) may still list recommended interventions in interventionIds.

                                          • Copy linkmeter.capabilities.measuresProduction.interventionIds array of string Required

                                            IDs of interventions the user can make to alter the availability of this capability. Interventions may be present even when isCapable is true (recommended, non-blocking actions). See the interventions guide.

                                      • Copy linkmeter.scopes array of string Required

                                        Scopes that the user has granted for this meter.

                                      • Copy linkmeter.hemSystemId string<uuid> or null Required

                                        ID of the HEM system the asset is associated with. This field is present when the HEM System feature is enabled and the asset is linked to a HEM system.

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:credentials:invalidated

                                    Occurs whenever the connection needs to be relinked.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:credentials:invalidated
                                    • Copy linkvendor string Required

                                      Machine-friendly name of the vendor. Use this in API requests.

                                      Possible enum values:

                                        ACURAADAXAFOREALFAROMEOALPINEAPSYSTEMSAUDIBMWBOSCHBYDCADILLACCHARGEAMPSCHARGEPOINTCHEVROLETCHRYSLERCITROENCSISolarCUPRADACIADAIKINDODGEDSDeyeEASEEECOBEEELLIENELXENPHASEFIATFORDFOXESSFRONIUSFUJITSUGAROGIVENERGYGMCGOEGOODWEGROWATTHEIDELBERGHONDAHONEYWELLHUAWEIHYUNDAIHoymilesINDRAINVTJAGUARJEEPKEBAKIALANCIALANDROVERLEXUSLUCIDMAZDAMERCEDESMGMICROMATICMILLMINIMITSUBISHIMYENERGINESTNETATMONIBENIONISSANOHMEOPELPANASONICPEBLARPEUGEOTPODPOINTPOLESTARPORSCHERAMRENAULTRESIDEORIVIANSCHNEIDERSEATSENSIBOSKODASMASOFARSOLAREDGESOLARKSOLAXSOLISSOLPLANETSUBARUSUNGROWSUNSYNKTADOTESLATOSHIBATOYOTATSUNVAUXHALLVOLKSWAGENVOLVOWALLBOXXPENGZAPTEC

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:vendor-action:updated

                                    Occurs whenever an action changes state.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:vendor-action:updated
                                    • Copy linkvendorAction Required
                                      Show child attributes
                                      • Copy linkvendorAction.id string<uuid> Required

                                        The ID of the action.

                                      • Copy linkvendorAction.userId string Required

                                        The ID of the user that owns the target of this action.

                                      • Copy linkvendorAction.createdAt string<date-time> Required

                                        Time when this action was created

                                      • Copy linkvendorAction.updatedAt string<date-time> Required

                                        Time when this action was last updated

                                      • Copy linkvendorAction.completedAt string<date-time> or null Required

                                        Time when the action transitioned to a non-pending state.

                                      • Copy linkvendorAction.state string Required

                                        The real-time status of an action executed on a target.

                                        • PENDING: The initial state. Enode is actively sending commands and monitoring the target for changes.
                                        • CONFIRMED: Successful transition of the target to the desired state.
                                        • FAILED: The target did not respond to the action before timing out. Enode has ceased sending additional commands.
                                        • CANCELLED: A required precondition was not met during the action's timeout window or another action has been sent to the target, overriding this one.

                                        Possible enum values:

                                          PENDINGCONFIRMEDFAILEDCANCELLED
                                      • Copy linkvendorAction.targetId string Required

                                        ID of the entity asset (HVAC) which this action is controlling.

                                      • Copy linkvendorAction.targetType string Required

                                        Possible enum values:

                                          hvac
                                      • Copy linkvendorAction.target Required
                                        Show child attributes
                                        • Copy linkvendorAction.target.coolSetpoint number Required
                                        • Copy linkvendorAction.target.mode string Required

                                          Possible enum values:

                                            COOL
                                        • Copy linkvendorAction.target.holdType string Required

                                          Possible enum values:

                                            PERMANENT
                                      • Copy linkvendorAction.failureReason object or null Required

                                        Information about why was this action not executed successfully.

                                        Show child attributes
                                        • Copy linkvendorAction.failureReason.type string Required

                                          A machine-readable high level error category.

                                          • NO_RESPONSE: The device did not react to our commands within the action's timeout window.
                                          • FAILED_PRECONDITION: The device did not meet all required preconditions for this action to be executed during the action's timeout window.
                                          • UNNECESSARY: The action was not carried out given that the device was already in the desired state.
                                          • CONFLICT: A newer action for this device has been created. This action is now abandoned.
                                          • REQUESTED_CANCELLATION: This action was cancelled by request of the controlling owner. The controlling owner may refer to another Enode entity which initiated the command, such as a schedule or smart override.
                                          • NOT_FOUND: The device was deleted while the action was PENDING.

                                          Possible enum values:

                                            NO_RESPONSEFAILED_PRECONDITIONCONFLICTNOT_FOUNDUNNECESSARYREQUESTED_CANCELLATION
                                        • Copy linkvendorAction.failureReason.detail string Required

                                          A human-readable explanation of why the action was unsuccessful.

                                    • Copy linkupdatedFields Required
                                      Show child attributes

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    system:heartbeat

                                    Occurs whenever a system heartbeat event is triggered.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkevent string Required

                                      Possible enum values:

                                        system:heartbeat
                                    • Copy linkpendingEvents number Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    enode:webhook:test

                                    Occurs whenever a webhook test event is triggered.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkevent string Required

                                      Possible enum values:

                                        enode:webhook:test

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hem-system:discovered

                                    Occurs whenever a new HEM System is discovered for a user. Only information properties will be populated. All other properties will be null. Shortly after discovery, you'll receive an :updated event that contains additional data.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hem-system:discovered
                                    • Copy linkhemSystem object Required

                                      Home Energy Management System (HEMS) that describes the solar installation or site or plant

                                      Show child attributes
                                      • Copy linkhemSystem.id string<uuid> Required

                                        Unique identifier for the HEM System

                                      • Copy linkhemSystem.userId string Required

                                        The ID of the user that linked devices of the solar installation

                                      • Copy linkhemSystem.locationId string<uuid> or null Required

                                        ID of the location the HEM System is associated with

                                      • Copy linkhemSystem.information object Required
                                        Show child attributes
                                        • Copy linkhemSystem.information.vendor string Required

                                          Machine-friendly name of the vendor. Use this in API requests.

                                          Possible enum values:

                                            SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                                        • Copy linkhemSystem.information.name string Required

                                          Name of the HEM System, as set by the user on the device/vendor.

                                        • Copy linkhemSystem.information.installationDate string<date-time> Required

                                          HEM System installation date

                                        • Copy linkhemSystem.information.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkhemSystem.information.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkhemSystem.information.address string or null Required

                                          Address of the HEM System

                                        • Copy linkhemSystem.information.timezone string or null Required
                                        • Copy linkhemSystem.information.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkhemSystem.status object Required

                                        Status of the HEM System

                                        Show child attributes
                                        • Copy linkhemSystem.status.lastSeen string<date-time> or null Required

                                          The last time Enode successfully communicated with the HEM system.

                                        • Copy linkhemSystem.status.energy object Required

                                          Energy metrics for the HEM System

                                          Show child attributes
                                          • Copy linkhemSystem.status.energy.today object Required

                                            Energy metrics for the current day (from midnight to last update seen by Enode)

                                            Show child attributes
                                            • Copy linkhemSystem.status.energy.today.generation number or null Required

                                              Solar generation in kWh

                                            • Copy linkhemSystem.status.energy.today.consumption number or null Required

                                              Household consumption in kWh

                                            • Copy linkhemSystem.status.energy.today.charge number or null Required

                                              Battery charge in kWh

                                            • Copy linkhemSystem.status.energy.today.discharge number or null Required

                                              Battery discharge in kWh

                                            • Copy linkhemSystem.status.energy.today.import number or null Required

                                              Grid import in kWh

                                            • Copy linkhemSystem.status.energy.today.export number or null Required

                                              Grid export in kWh

                                            • Copy linkhemSystem.status.energy.today.unit string Required

                                              Unit of the metrics

                                            • Copy linkhemSystem.status.energy.today.lastUpdated string<date-time> or null Required

                                              Time of last received metrics update

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hem-system:updated

                                    Occurs whenever a HEM System's properties are updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hem-system:updated
                                    • Copy linkhemSystem object Required

                                      Home Energy Management System (HEMS) that describes the solar installation or site or plant

                                      Show child attributes
                                      • Copy linkhemSystem.id string<uuid> Required

                                        Unique identifier for the HEM System

                                      • Copy linkhemSystem.userId string Required

                                        The ID of the user that linked devices of the solar installation

                                      • Copy linkhemSystem.locationId string<uuid> or null Required

                                        ID of the location the HEM System is associated with

                                      • Copy linkhemSystem.information object Required
                                        Show child attributes
                                        • Copy linkhemSystem.information.vendor string Required

                                          Machine-friendly name of the vendor. Use this in API requests.

                                          Possible enum values:

                                            SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                                        • Copy linkhemSystem.information.name string Required

                                          Name of the HEM System, as set by the user on the device/vendor.

                                        • Copy linkhemSystem.information.installationDate string<date-time> Required

                                          HEM System installation date

                                        • Copy linkhemSystem.information.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkhemSystem.information.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkhemSystem.information.address string or null Required

                                          Address of the HEM System

                                        • Copy linkhemSystem.information.timezone string or null Required
                                        • Copy linkhemSystem.information.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkhemSystem.status object Required

                                        Status of the HEM System

                                        Show child attributes
                                        • Copy linkhemSystem.status.lastSeen string<date-time> or null Required

                                          The last time Enode successfully communicated with the HEM system.

                                        • Copy linkhemSystem.status.energy object Required

                                          Energy metrics for the HEM System

                                          Show child attributes
                                          • Copy linkhemSystem.status.energy.today object Required

                                            Energy metrics for the current day (from midnight to last update seen by Enode)

                                            Show child attributes
                                            • Copy linkhemSystem.status.energy.today.generation number or null Required

                                              Solar generation in kWh

                                            • Copy linkhemSystem.status.energy.today.consumption number or null Required

                                              Household consumption in kWh

                                            • Copy linkhemSystem.status.energy.today.charge number or null Required

                                              Battery charge in kWh

                                            • Copy linkhemSystem.status.energy.today.discharge number or null Required

                                              Battery discharge in kWh

                                            • Copy linkhemSystem.status.energy.today.import number or null Required

                                              Grid import in kWh

                                            • Copy linkhemSystem.status.energy.today.export number or null Required

                                              Grid export in kWh

                                            • Copy linkhemSystem.status.energy.today.unit string Required

                                              Unit of the metrics

                                            • Copy linkhemSystem.status.energy.today.lastUpdated string<date-time> or null Required

                                              Time of last received metrics update

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    user:hem-system:deleted

                                    Occurs whenever a HEM System is deleted. The payload reflects the last known state of the asset before deletion.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        user:hem-system:deleted
                                    • Copy linkhemSystem object Required

                                      Home Energy Management System (HEMS) that describes the solar installation or site or plant

                                      Show child attributes
                                      • Copy linkhemSystem.id string<uuid> Required

                                        Unique identifier for the HEM System

                                      • Copy linkhemSystem.userId string Required

                                        The ID of the user that linked devices of the solar installation

                                      • Copy linkhemSystem.locationId string<uuid> or null Required

                                        ID of the location the HEM System is associated with

                                      • Copy linkhemSystem.information object Required
                                        Show child attributes
                                        • Copy linkhemSystem.information.vendor string Required

                                          Machine-friendly name of the vendor. Use this in API requests.

                                          Possible enum values:

                                            SOLAREDGEFOXESSSMATESLAGIVENERGYSOLAXSOLISHUAWEIENPHASESUNGROW
                                        • Copy linkhemSystem.information.name string Required

                                          Name of the HEM System, as set by the user on the device/vendor.

                                        • Copy linkhemSystem.information.installationDate string<date-time> Required

                                          HEM System installation date

                                        • Copy linkhemSystem.information.latitude number or null Required

                                          Latitude in degrees

                                        • Copy linkhemSystem.information.longitude number or null Required

                                          Longitude in degrees

                                        • Copy linkhemSystem.information.address string or null Required

                                          Address of the HEM System

                                        • Copy linkhemSystem.information.timezone string or null Required
                                        • Copy linkhemSystem.information.lastUpdated string<date-time> or null Required

                                          Time of last received location state update

                                      • Copy linkhemSystem.status object Required

                                        Status of the HEM System

                                        Show child attributes
                                        • Copy linkhemSystem.status.lastSeen string<date-time> or null Required

                                          The last time Enode successfully communicated with the HEM system.

                                        • Copy linkhemSystem.status.energy object Required

                                          Energy metrics for the HEM System

                                          Show child attributes
                                          • Copy linkhemSystem.status.energy.today object Required

                                            Energy metrics for the current day (from midnight to last update seen by Enode)

                                            Show child attributes
                                            • Copy linkhemSystem.status.energy.today.generation number or null Required

                                              Solar generation in kWh

                                            • Copy linkhemSystem.status.energy.today.consumption number or null Required

                                              Household consumption in kWh

                                            • Copy linkhemSystem.status.energy.today.charge number or null Required

                                              Battery charge in kWh

                                            • Copy linkhemSystem.status.energy.today.discharge number or null Required

                                              Battery discharge in kWh

                                            • Copy linkhemSystem.status.energy.today.import number or null Required

                                              Grid import in kWh

                                            • Copy linkhemSystem.status.energy.today.export number or null Required

                                              Grid export in kWh

                                            • Copy linkhemSystem.status.energy.today.unit string Required

                                              Unit of the metrics

                                            • Copy linkhemSystem.status.energy.today.lastUpdated string<date-time> or null Required

                                              Time of last received metrics update

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:vehicle-policy:created

                                    Occurs whenever a Flex vehicle policy is created.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:vehicle-policy:created
                                    • Copy linkpolicy object Required

                                      Flex Policy

                                      Show child attributes
                                      • Copy linkpolicy.id string Required

                                        The ID of the flex policy.

                                      • Copy linkpolicy.vehicleId string Required

                                        The ID of the vehicle for which this policy applies.

                                      • Copy linkpolicy.locationId string Required

                                        The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                      • Copy linkpolicy.batteryReserve number Required

                                        Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                      • Copy linkpolicy.lastObservedLocationChargeLimit number Required

                                        The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                      • Copy linkpolicy.schedule object Required

                                        The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                        Show child attributes
                                        • Copy linkpolicy.schedule.monday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.monday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.monday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.tuesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.tuesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.tuesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.wednesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.wednesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.wednesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.thursday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.thursday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.thursday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.friday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.friday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.friday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.saturday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.saturday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.saturday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.sunday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.sunday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.sunday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkpolicy.restrictionSchedule array of object Required

                                        A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                        Show child attributes
                                        • Copy linkpolicy.restrictionSchedule[].type string Required

                                          Extensible enum. The type of restriction. Currently only FULL is supported.

                                        • Copy linkpolicy.restrictionSchedule[].weekdays array of integer Required

                                          Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                        • Copy linkpolicy.restrictionSchedule[].startTime string Required

                                          Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                        • Copy linkpolicy.restrictionSchedule[].endTime string Required

                                          End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:vehicle-policy:updated

                                    Occurs whenever a Flex vehicle policy is updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:vehicle-policy:updated
                                    • Copy linkpolicy object Required

                                      Flex Policy

                                      Show child attributes
                                      • Copy linkpolicy.id string Required

                                        The ID of the flex policy.

                                      • Copy linkpolicy.vehicleId string Required

                                        The ID of the vehicle for which this policy applies.

                                      • Copy linkpolicy.locationId string Required

                                        The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                      • Copy linkpolicy.batteryReserve number Required

                                        Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                      • Copy linkpolicy.lastObservedLocationChargeLimit number Required

                                        The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                      • Copy linkpolicy.schedule object Required

                                        The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                        Show child attributes
                                        • Copy linkpolicy.schedule.monday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.monday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.monday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.tuesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.tuesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.tuesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.wednesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.wednesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.wednesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.thursday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.thursday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.thursday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.friday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.friday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.friday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.saturday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.saturday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.saturday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.sunday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.sunday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.sunday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkpolicy.restrictionSchedule array of object Required

                                        A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                        Show child attributes
                                        • Copy linkpolicy.restrictionSchedule[].type string Required

                                          Extensible enum. The type of restriction. Currently only FULL is supported.

                                        • Copy linkpolicy.restrictionSchedule[].weekdays array of integer Required

                                          Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                        • Copy linkpolicy.restrictionSchedule[].startTime string Required

                                          Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                        • Copy linkpolicy.restrictionSchedule[].endTime string Required

                                          End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:vehicle-policy:deleted

                                    Occurs whenever a Flex vehicle policy is deleted.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:vehicle-policy:deleted
                                    • Copy linkpolicy object Required

                                      Flex Policy

                                      Show child attributes
                                      • Copy linkpolicy.id string Required

                                        The ID of the flex policy.

                                      • Copy linkpolicy.vehicleId string Required

                                        The ID of the vehicle for which this policy applies.

                                      • Copy linkpolicy.locationId string Required

                                        The ID of the location at which this policy is applied. When the vehicle is not at this location, the Policy Status State will be UNAVAILABLE.

                                      • Copy linkpolicy.batteryReserve number Required

                                        Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                      • Copy linkpolicy.lastObservedLocationChargeLimit number Required

                                        The vehicle's charge limit as last observed at this policy's location. Defaults to 100 until first observed. Used for validating that targets do not exceed the vehicle's charge limit at this location.

                                      • Copy linkpolicy.schedule object Required

                                        The weekly schedule of Policy settings. The upcoming schedule settings should be read from the Policy Status object, under settings.regularSchedule.

                                        Show child attributes
                                        • Copy linkpolicy.schedule.monday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.monday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.monday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.tuesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.tuesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.tuesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.wednesday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.wednesday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.wednesday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.thursday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.thursday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.thursday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.friday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.friday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.friday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.saturday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.saturday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.saturday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicy.schedule.sunday object Required

                                          The schedule settings for a particular day of the week.

                                          Show child attributes
                                          • Copy linkpolicy.schedule.sunday.deadline string Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicy.schedule.sunday.minimumChargeTarget number Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkpolicy.restrictionSchedule array of object Required

                                        A list of recurring restriction windows where the system plans and requests charging to pause. At most 20 entries; entries must not overlap on the same weekday. Use 24:00 as the endTime of an entry to indicate end of day (midnight).

                                        Show child attributes
                                        • Copy linkpolicy.restrictionSchedule[].type string Required

                                          Extensible enum. The type of restriction. Currently only FULL is supported.

                                        • Copy linkpolicy.restrictionSchedule[].weekdays array of integer Required

                                          Days of the week on which the restriction is active, encoded as 0=Monday through 6=Sunday (ISO 8601 ordering, zero-indexed). Must contain at least one day, with no duplicates. The restriction applies only on these days and only between startTime and endTime on each of them.

                                        • Copy linkpolicy.restrictionSchedule[].startTime string Required

                                          Start time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from this time until endTime on each day listed in weekdays.

                                        • Copy linkpolicy.restrictionSchedule[].endTime string Required

                                          End time of the restriction window in HH:MM format, interpreted in the location's local time. The restriction is active from startTime until this time on each day listed in weekdays. Use 24:00 to indicate end of day (midnight).

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:vehicle-policy:status

                                    Occurs whenever a Flex vehicle policy's status is updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:vehicle-policy:status
                                    • Copy linkpolicyStatus object Required

                                      A view of the current flex policy settings, including any active overrides.

                                      Show child attributes
                                      • Copy linkpolicyStatus.updatedAt string<date-time> Required

                                        The timestamp of the last update to the flex policy.

                                      • Copy linkpolicyStatus.policyId string Required

                                        The ID of the policy.

                                      • Copy linkpolicyStatus.locationId string Required

                                        The ID of the location.

                                      • Copy linkpolicyStatus.vehicleId string Required

                                        The ID of the vehicle.

                                      • Copy linkpolicyStatus.state string Required

                                        The state of the flex policy.

                                        • UNAVAILABLE: The vehicle is unavailable for Flexible EV Charging for some reason, for example, because it is not plugged in, or not the Policy's location.
                                        • IMMEDIATE:OVERRIDE: The vehicle is charging to some target battery level because of a temporary override.
                                        • SCHEDULE:BATTERY_RESERVE: The vehicle is charging to a battery reserve level, and will stop after reaching that level.
                                        • SCHEDULE:REGULAR: The vehicle is following the regular schedule and actively participating in Flexible EV Charging.
                                        • SCHEDULE:OVERRIDE: The vehicle is following a schedule override, and is still actively participating in Flexible EV Charging.
                                        • SCHEDULE:INFLEXIBLE: The vehicle doesn't have enough time to charge to the target battery level, so there isn't any opportunity to flex the charging.

                                        Possible enum values:

                                          UNAVAILABLEIMMEDIATE:OVERRIDESCHEDULE:BATTERY_RESERVESCHEDULE:REGULARSCHEDULE:OVERRIDESCHEDULE:INFLEXIBLE
                                      • Copy linkpolicyStatus.batteryReserve number Required

                                        Upon arrival at the location, the vehicle will immediately charge to this battery level without regard to prices or flexibility demands. This charging is reflected in the Policy Status State as SCHEDULE:BATTERY_RESERVE. Must be between 0% and 20%. Note: For Mercedes-Benz vehicles, batteryReserve must be set to 50, as these vehicles always charge to 50% SOC upon plug-in.

                                      • Copy linkpolicyStatus.settings object Required
                                        Show child attributes
                                        • Copy linkpolicyStatus.settings.regularSchedule object Required

                                          Today's schedule settings, resolved from the weekly schedule.

                                          Show child attributes
                                          • Copy linkpolicyStatus.settings.regularSchedule.deadline string or null Required

                                            The time of day the user wants their vehicle to be charged by on a specific day of the week.

                                          • Copy linkpolicyStatus.settings.regularSchedule.readyBy string<date-time> Required

                                            The upcoming deadline represented as a RFC3339 UTC timestamp.

                                          • Copy linkpolicyStatus.settings.regularSchedule.minimumChargeTarget number or null Required

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                        • Copy linkpolicyStatus.settings.override Required

                                          An override applied to a Flex Policy, shown as a part of the Flex Status entity. The override is either a next-day schedule override or an immediate start override.

                                          Show child attributes
                                          • Copy linkpolicyStatus.settings.override.type string Required

                                            Possible enum values:

                                              UPCOMING_SCHEDULE
                                          • Copy linkpolicyStatus.settings.override.readyBy string<date-time> Optional

                                            The timestamp at which the user wants their vehicle to be charged by. Overrides the upcoming deadline set in the Flex Policy. Must be in the future.

                                          • Copy linkpolicyStatus.settings.override.minimumChargeTarget number Optional

                                            The minimum acceptable battery level the user needs to reach by their deadline on a specific day of the week. The vehicle may, under some circumstances, charge to a higher battery level than the minimumChargeTarget. If the minimumChargeTarget is higher than the vehicle's chargeLimit, the vehicle will charge to the chargeLimit instead. Must be greater than or equal to the batteryReserve. For Mercedes-Benz vehicles, the minimumChargeTarget minimum is 50%, see batteryReserve for more details.

                                      • Copy linkpolicyStatus.session object Required

                                        An object containing information about the vehicle's current plug session.

                                        Show child attributes
                                        • Copy linkpolicyStatus.session.blocks array of object Required
                                          Show child attributes
                                          • Copy linkpolicyStatus.session.blocks[].statusState string Required

                                            The state of the Policy Status during this charging block.

                                            Possible enum values:

                                              UNAVAILABLEIMMEDIATE:OVERRIDESCHEDULE:BATTERY_RESERVESCHEDULE:REGULARSCHEDULE:OVERRIDESCHEDULE:INFLEXIBLE
                                          • Copy linkpolicyStatus.session.blocks[].estimatedStartAt string<date-time> Required

                                            The estimated start time of the charging block.

                                          • Copy linkpolicyStatus.session.blocks[].estimatedEndAt string<date-time> Required

                                            The estimated end time of the charging block.

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:session:updated

                                    Occurs whenever a Flex charging session is updated.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkuser object Required
                                      Show child attributes
                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:session:updated
                                    • Copy linksession Required
                                      Show child attributes
                                      • Copy linksession.id string<uuid> Required

                                        The unique identifier for this session.

                                      • Copy linksession.state string Required

                                        The current state of the session.

                                        • UPCOMING: Initial state, created shortly after the previous session has settled.
                                        • ACTIVE:BATTERY_RESERVE: Vehicle is plugged in, charging to maintain battery reserve.
                                        • ACTIVE:REGULAR: Vehicle is plugged in, smart charging according to schedule.
                                        • ACTIVE:IMMEDIATE_START: Vehicle is plugged in, charging immediately.

                                        Possible enum values:

                                          UPCOMINGACTIVE:BATTERY_RESERVEACTIVE:REGULARACTIVE:IMMEDIATE_START
                                      • Copy linksession.policyId string<uuid> or null Required

                                        The unique identifier for the policy associated with this session.

                                      • Copy linksession.vehicleId string<uuid> Required

                                        The unique identifier for the vehicle associated with this session.

                                      • Copy linksession.locationId string<uuid> or null Required

                                        The unique identifier for the location associated with this session.

                                      • Copy linksession.pluggedInAt string<date-time> Required

                                        The date and time when the vehicle was plugged in.

                                      • Copy linksession.pluggedOutAt null Required

                                        Always null. The vehicle has not been unplugged yet.

                                      • Copy linksession.blocks array of object Required

                                        Discrete windows of active charging within the session. Empty while UPCOMING. While ACTIVE, blocks represent a mix of past charging and planned future charging — past blocks are final, future blocks are tentative and may shift as the schedule re-optimizes.

                                        Show child attributes
                                        • Copy linksession.blocks[].mode string Required

                                          Extensible enum. Whether the block represents active charging or an intended restriction pause.

                                          • CHARGING: The block represents active or planned charging.
                                          • RESTRICTION: The block represents a period where charging is intended to be paused due to a restriction. It normally carries no energy, but may have positive kWh if charging continued anyway, for example because a stop command failed or was delayed.
                                        • Copy linksession.blocks[].type string Required

                                          Extensible enum. The type of charge block. UNKNOWN is energy delivered in a period the session did not plan for: charging the system did not initiate, for example the vehicle charging on its own. Only appears on settled sessions, and always reported with source: UNKNOWN, flexibility: NONE.

                                        • Copy linksession.blocks[].source string Required

                                          Extensible enum. Where this block came from. POLICY and USER_OVERRIDE mirror the target source. UNKNOWN means the charging was not initiated by the schedule or the user, so its origin is unknown; it always pairs with type: UNKNOWN.

                                        • Copy linksession.blocks[].flexibility string Required

                                          How much scheduling freedom this block had.

                                          • FULL: The block could move by at least one hour.
                                          • LIMITED: The block could move, but by less than one hour.
                                          • NONE: The block could not move.

                                          Possible enum values:

                                            FULLLIMITEDNONE
                                        • Copy linksession.blocks[].kwhSum number Required

                                          The total energy delivered during this block in kWh. For completed and in-progress blocks, this is the actual energy delivered. For future (tentative) blocks, this is the system's estimate.

                                        • Copy linksession.blocks[].startAt string<date-time> Required

                                          While ACTIVE, this is when the block started (if past) or is tentatively planned to start (if future). While SETTLED, this is when the block actually started.

                                        • Copy linksession.blocks[].endAt string<date-time> Required

                                          While ACTIVE, this is when the block ended (if past) or is tentatively planned to end (if future). While SETTLED, this is when the block actually ended.

                                      • Copy linksession.statistics object Required

                                        Energy delivery statistics for the session.

                                        Show child attributes
                                        • Copy linksession.statistics.aggregated object or null Required

                                          Aggregated statistics for the session. Null while UPCOMING.

                                          Show child attributes
                                          • Copy linksession.statistics.aggregated.kwhSum number or null Required

                                            The total amount of energy charged in kWh.

                                          • Copy linksession.statistics.aggregated.batteryFrom number Required

                                            The battery percentage at the start of the session.

                                          • Copy linksession.statistics.aggregated.batteryTo number Required

                                            The current battery percentage while ACTIVE, or the final battery percentage when SETTLED.

                                        • Copy linksession.statistics.timeseries array of object Required

                                          15-minute interval energy delivery data. Empty while UPCOMING.

                                          Show child attributes
                                          • Copy linksession.statistics.timeseries[].startAt string<date-time> Required

                                            The start of this 15-minute interval.

                                          • Copy linksession.statistics.timeseries[].kwh number Required

                                            The energy delivered in kWh over this 15-minute interval.

                                      • Copy linksession.target object Required

                                        What the system is charging towards for this session.

                                        Show child attributes
                                        • Copy linksession.target.latest Required

                                          The latest target configuration. Null for unmanaged sessions (e.g. public charging) where the system did not control the charge. Use type to distinguish between REGULAR and IMMEDIATE_START targets.

                                          Show child attributes
                                          • Copy linksession.target.latest.id integer Required

                                            Incrementing identifier for this target within the session.

                                          • Copy linksession.target.latest.type string Required

                                            Possible enum values:

                                              REGULAR
                                          • Copy linksession.target.latest.source string Required

                                            Extensible enum. Whether this target follows the default policy or a user override.

                                          • Copy linksession.target.latest.batteryReserve number Required

                                            The battery reserve percentage. Charging to this level is always prioritised.

                                          • Copy linksession.target.latest.minimumChargeTarget number Required

                                            The minimum charge target as a battery percentage.

                                          • Copy linksession.target.latest.readyBy string<date-time> Required

                                            The time by which the minimum charge target should be reached.

                                      • Copy linksession.outcome object Required

                                        Whether the target will be met for this session.

                                        Show child attributes
                                        • Copy linksession.outcome.latest Required

                                          The latest outcome assessment. Null before the first estimate is available. Use type to distinguish between REGULAR and IMMEDIATE_START outcomes, then state to distinguish ON_TARGET from OFF_TARGET within regular outcomes.

                                          Show child attributes
                                          • Copy linksession.outcome.latest.type string Required

                                            Possible enum values:

                                              REGULAR
                                          • Copy linksession.outcome.latest.targetId integer Required

                                            The target this outcome is evaluated against.

                                          • Copy linksession.outcome.latest.state string Required

                                            The minimum charge target is estimated to be reached by the ready-by time.

                                            Possible enum values:

                                              ON_TARGET
                                          • Copy linksession.outcome.latest.batteryLevelAtReadyBy null Required

                                            Always null for on-target outcomes.

                                          • Copy linksession.outcome.latest.minimumChargeTargetReachedAt null Required

                                            Always null for on-target outcomes.

                                      • Copy linksession.error object Required

                                        Error state for this session.

                                        Show child attributes
                                        • Copy linksession.error.latest Required

                                          The latest error state. Null when there is no active error. Use type to identify the error kind.

                                          Show child attributes
                                          • Copy linksession.error.latest.type string Required

                                            Possible enum values:

                                              START_FAIL
                                      • Copy linksession.restrictions object Required

                                        Restrictions on this session.

                                        Show child attributes
                                        • Copy linksession.restrictions.current object or null Required

                                          The restriction currently constraining charging, or null if none is in effect. When both a POLICY and a USER_OVERRIDE window are active, USER_OVERRIDE takes precedence. When the session is in ACTIVE:IMMEDIATE_START, current is null because the immediate-start override suppresses restriction enforcement; the underlying schedule windows remain visible in all. Reflects the restriction state at the time the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                          Show child attributes
                                          • Copy linksession.restrictions.current.type string Required

                                            The type of restriction.

                                            Possible enum values:

                                              FULL
                                          • Copy linksession.restrictions.current.source string Required

                                            Extensible enum. The source of the restriction.

                                            • USER_OVERRIDE: A user-created restriction.
                                            • POLICY: A restriction from the policy's restriction schedule.
                                          • Copy linksession.restrictions.current.startsAt string<date-time> Required

                                            When the restriction started.

                                          • Copy linksession.restrictions.current.endsAt string<date-time> Required

                                            When the restriction will end.

                                        • Copy linksession.restrictions.all array of object Required

                                          All restriction windows for this session, sorted by startsAt. Covers at least the next 24 hours. Includes policy-scheduled and user-override restrictions. Empty for settled sessions; their historic restriction periods appear as RESTRICTION-mode entries in blocks. Active sessions project POLICY windows from the restriction schedule snapshotted at plug-in, so mid-session policy edits do not affect them. Upcoming sessions project POLICY windows from the current policy schedule. Reflects the restriction state when the session was last updated. For live updates, subscribe to the flex.session.updated webhook.

                                          Show child attributes
                                          • Copy linksession.restrictions.all[].type string Required

                                            The type of restriction.

                                            Possible enum values:

                                              FULL
                                          • Copy linksession.restrictions.all[].source string Required

                                            Extensible enum. The source of the restriction.

                                            • USER_OVERRIDE: A user-created restriction.
                                            • POLICY: A restriction from the policy's restriction schedule.
                                          • Copy linksession.restrictions.all[].startsAt string<date-time> Required

                                            When the restriction started.

                                          • Copy linksession.restrictions.all[].endsAt string<date-time> Required

                                            When the restriction will end.

                                    • Copy linkupdatedFields array of string Required

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?

                                    flex:tariff-coverage:alert

                                    Occurs when tariff data coverage gaps are detected that may affect Flex optimization.

                                    Copy linkRequest

                                    Attributes
                                    • Copy linkcreatedAt string<date-time> Required

                                      ISO8601 UTC timestamp

                                    • Copy linkversion string Required

                                      API version of the payload

                                    • Copy linkevent string Required

                                      Possible enum values:

                                        flex:tariff-coverage:alert
                                    • Copy linkaffectedTariffIds array of string Required

                                      IDs of the tariffs missing timeseries coverage in this event. If there are more affected tariffs than fit in one event, multiple events are sent.

                                    • Copy linkissues array of object Optional

                                    Copy linkResponse 200

                                    The subscriber should return 200 OK to acknowledge the webhook has been received

                                    Was this section helpful?