# ev.energy v2 API

The official API for ev.energy, version 2.

Version: 2.0
License: Proprietary

## Servers

Live API for both production and sandbox requests.
```
https://api.ev.energy/v2
```

Staging server for internal testing only.
```
https://api-staging.ev.energy/v2
```

## Security

### oauth2

Type: oauth2
Token URL: https://api.ev.energy/o/token/
Scopes:
- `carbon:read`: 
- `grid:read`: 
- `evse:read`: 
- `evse:write`: 
- `vehicle:read`: 
- `user:read`: 
- `charging_session:read`: 
- `tariff:read`: 
- `tariff:prices:read`: 
- `tariff:write`: Create, update and delete custom tariffs
- `user:write`: 
- `inverter:read`: 
- `inverter:write`: 
- `home_battery:read`: 
- `home_energy:read`: 
- `boundary_meter:read`: 
- `vehicle:write`: 
- `vehicle_catalogue:write`: Update shared vehicle-catalogue reference data (e.g. a model's default connector type)
- `charging_session:write`: 
- `solar:write`: 
- `solar:read`: 
- `subscription:read`: 
- `debug:read`: 
- `dispatch_coordinator:read`: 
- `dispatch_event:write`: 
- `solar_forecast:read`: 
- `payout_method:read`: Read a user's preferred payout method
- `payout_method:write`: Set, update, or clear a user's preferred payout method
- `notification_preferences:read`: Read a user's notification group opt-in state
- `notification_preferences:write`: Update a user's notification group opt-in state
- `route_planner_preferences:read`: Read a user's EV Route Planner preferences
- `route_planner_preferences:write`: Update a user's EV Route Planner preferences
- `saved_places:read`: Read a user's saved route-planner places
- `saved_places:write`: Create, update, or delete a user's saved places
- `saved_routes:read`: Read a user's saved route-planner routes
- `saved_routes:write`: Create, update, or delete a user's saved routes
- `region:read`: Read region and region group boundary data
- `region:write`: Create regions and region groups
- `promo:read`: Read an organisation's promo codes, their redemption counts by stage, and the anonymised per-redemption ledger
- `promo:manage`: Mint and update an organisation's promo codes
- `incentives:read`: Read incentive schemes and the incentives earned under them

## Download OpenAPI description

 - [ev.energy v2 API](https://developers.ev.energy/_bundle/ev.energy-API-v2.yaml)

## Carbon

 - [CarbonFeed](https://developers.ev.energy/ev.energy-api-v2/carbon/carbonfeed.md): Schema: #/components/schemas/CarbonFeed
 - [CarbonIntensity](https://developers.ev.energy/ev.energy-api-v2/carbon/carbonintensity.md): Schema: #/components/schemas/CarbonIntensity
 - [GET /carbon_feeds](https://developers.ev.energy/ev.energy-api-v2/carbon/get-carbon_feeds.md): List all carbon feeds visible to the authenticated client. Carbon feeds represent sources of carbon intensity data for specific regions or grids.
 - [GET /carbon_feeds/{carbon_feed_id}](https://developers.ev.energy/ev.energy-api-v2/carbon/get-carbon_feeds-carbon_feed_id.md): Retrieve a specific carbon feed, representing a source of carbon intensity data for a region or grid.
 - [GET /carbon_feeds/{carbon_feed_id}/carbon_intensities](https://developers.ev.energy/ev.energy-api-v2/carbon/get-carbon_feeds-carbon_feed_id-carbon_intensities.md): Returns a paginated list of carbon intensity data points for a specific carbon feed. Carbon intensity represents the amount of CO2 emissions per unit of electricity generated, measured in grams of CO2
## Charging Sessions

 - [DispatcherLog](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/dispatcherlog.md): Schema: #/components/schemas/DispatcherLog
 - [GET /charging_sessions](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sessions.md): List all charging sessions visible to the authenticated client. Each session represents one physical plug-in episode: its start/end are the plug-in and unplug times. A session contains one or more cha
 - [GET /charging_sessions/{charging_session_id}](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sessions-charging_session_id.md): Retrieve a specific charging session representing one physical plug-in episode: its start/end are the plug-in and unplug times. See [Understanding charging data](/docs/understanding/charging_sessions)
 - [POST /charging_sessions/{charging_session_id}/boost_start](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/post-charging_sessions-charging_session_id-boost_start.md): Start boost charging on this charging session's vehicle. Finishes the in-progress smart charging sub-session and starts a replacement boost sub-session, charging the vehicle continuously rather than a
 - [POST /charging_sessions/{charging_session_id}/boost_end](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/post-charging_sessions-charging_session_id-boost_end.md): End boost charging on this charging session's vehicle. Finishes the in-progress boost sub-session and starts a replacement smart charging sub-session, returning the vehicle to charging around the chea
 - [GET /charging_sub_sessions](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions.md): List all charging sub sessions visible to the authenticated client. A charging sub-session is a segment of a plug-in episode during which a single charging mode (SMART, BOOST, etc.) was active. Its st
 - [GET /charging_sub_sessions/{charging_sub_session_id}](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id.md): Retrieve a specific charging sub-session, representing a period of a plug-in episode during which a single charging mode was active. Its start/end mark when the mode started and stopped being active —
 - [GET /charging_sub_sessions/{charging_sub_session_id}/energy_usage](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-energy_usage.md): Retrieve periodic energy usage intervals for a specific charging sub-session. This is the endpoint to use to find out when energy was actually delivered to the vehicle. A sub-session's start/end only
 - [GET /charging_sub_sessions/{charging_sub_session_id}/flags](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-flags.md): Retrieve flags associated with a specific charging sub-session. Flags highlight particular types of issues or anomalies detected during a charging session, along with their root causes.
 - [GET /charging_sub_sessions/{charging_sub_session_id}/debug_metadata](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-debug_metadata.md): Retrieve debug metadata for a specific charging sub-session. Debug metadata exposes session-level diagnostic information such as start/finish reasons, the energy usage calculation and interpolation m
 - [GET /charging_sub_sessions/{charging_sub_session_id}/schedules](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-schedules.md): Retrieve schedules for a specific charging sub-session. Schedules represent charging instructions for a charging session. Each schedule specifies a current (in milliamps) and a time period during whi
 - [GET /charging_sub_sessions/{charging_sub_session_id}/schedule_plans](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-schedule_plans.md): Retrieve schedule plans for a specific charging sub-session. Schedule plans represent the charging plan parameters used to generate schedules for a charging session. Each plan contains information ab
 - [GET /charging_sub_sessions/{charging_sub_session_id}/assessment](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-charging_sub_sessions-charging_sub_session_id-assessment.md): Retrieve the performance assessment for a specific charging sub-session. The assessment contains performance metrics for completed charging sessions, including energy delivery ratios, charge rates, a
 - [POST /charging_sub_sessions/{charging_sub_session_id}/recalculate_energy_usages](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/post-charging_sub_sessions-charging_sub_session_id-recalculate_energy_usages.md): Triggers a recalculation of energy usages (and performance assessment) for a completed charging sub-session. Use `dry_run` to preview the recalculation without persisting changes, and `cap_overages` t
 - [GET /dispatcher_logs](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/get-dispatcher_logs.md): List all dispatcher logs for a charging session. These logs record Dispatch Command attempts to EVSEs or Vehicles.
 - [POST charging_sub_session.created](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/paths/charging_sub_session.created/post.md): A charging sub-session is created, representing a period of charging in a single mode.
 - [POST charging_sub_session.ended](https://developers.ev.energy/ev.energy-api-v2/charging-sessions/paths/charging_sub_session.ended/post.md): A charging sub-session has ended, representing a period of charging in a single mode.
## CSV

## EVSEs

 - [EVSE](https://developers.ev.energy/ev.energy-api-v2/evses/evse.md): Schema: #/components/schemas/EVSE
 - [Model](https://developers.ev.energy/ev.energy-api-v2/evses/evsemodel.md): Schema: #/components/schemas/EVSEModel
 - [Make](https://developers.ev.energy/ev.energy-api-v2/evses/evsemake.md): Schema: #/components/schemas/EVSEMake
 - [EVSEImportRequest](https://developers.ev.energy/ev.energy-api-v2/evses/evseimportrequest.md): Schema: #/components/schemas/EVSEImportRequest
 - [EVSEWaitlistRequest](https://developers.ev.energy/ev.energy-api-v2/evses/evsewaitlistrequest.md): Schema: #/components/schemas/EVSEWaitlistRequest
 - [EVSEWaitlistResponse](https://developers.ev.energy/ev.energy-api-v2/evses/evsewaitlistresponse.md): Schema: #/components/schemas/EVSEWaitlistResponse
 - [EVSEOnboardingJsonResponse](https://developers.ev.energy/ev.energy-api-v2/evses/evseonboardingjsonresponse.md): Schema: #/components/schemas/EVSEOnboardingJsonResponse
 - [EVSECommandLog](https://developers.ev.energy/ev.energy-api-v2/evses/evsecommandlog.md): Schema: #/components/schemas/EVSECommandLog
 - [EVSEAPIErrorLog](https://developers.ev.energy/ev.energy-api-v2/evses/evseapierrorlog.md): Schema: #/components/schemas/EVSEAPIErrorLog
 - [EVSEOCPPLog](https://developers.ev.energy/ev.energy-api-v2/evses/evseocpplog.md): Schema: #/components/schemas/EVSEOCPPLog
 - [EVSEStatusLog](https://developers.ev.energy/ev.energy-api-v2/evses/evsestatuslog.md): Schema: #/components/schemas/EVSEStatusLog
 - [GET /evse_compatibility/check](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_compatibility-check.md): Returns whether the given `EVSEModel` is supported in the supplied country, and whether the support is `beta` (early-access) or live. Used by the onboarding flow to tell the user upfront whether their
 - [GET /evses](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses.md): List all the EVSEs that the authorization token has access to.
 - [GET /evses/{evse_id}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id.md): Retrieve a single, specific EVSE's details.
 - [PATCH /evses/{evse_id}](https://developers.ev.energy/ev.energy-api-v2/evses/patch-evses-evse_id.md): Update an EVSE. Only the EVSE's `location` may be changed via this endpoint; all other fields are read-only. A `400` is returned when the request body fails validation (for example a non-numeric, non-
 - [DELETE /evses/{evse_id}](https://developers.ev.energy/ev.energy-api-v2/evses/delete-evses-evse_id.md): Decommission the EVSE by disconnecting it from the ev.energy system.
 - [GET /evse_models](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_models.md): List all the EVSE models known by the ev.energy system. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /evse_models/{evse_model_id}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_models-evse_model_id.md): Retrieve details for a single, specific EVSE model. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /evse_makes](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_makes.md): List all the EVSE makes known by the ev.energy system. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /evse_makes/{evse_make_id}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_makes-evse_make_id.md): Retrieve details for a single, specific EVSE make. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /evses/{evse_id}/status_logs](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-status_logs.md): List the historical status logs for a specific EVSE. Used to find out the state of the EVSE at each point it reported in to ev.energy.
 - [GET /evses/{evse_id}/status_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-status_logs-timestamp.md): An EVSE status log is uniquely identified by the combination of EVSE ID and the time it was sampled at.
 - [GET /evses/{evse_id}/command_logs](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-command_logs.md): List the historical command logs for a specific EVSE. These logs record commands that were sent to the EVSE.
 - [GET /evses/{evse_id}/command_logs/{logged_at}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-command_logs-timestamp.md): An EVSE command log is uniquely identified by the combination of EVSE ID and the time it was logged at.
 - [GET /evses/{evse_id}/error_logs](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-error_logs.md): List the historical API error logs for a specific EVSE. These logs capture errors that occurred when attempting to communicate with the EVSE's hardware API.
 - [GET /evses/{evse_id}/error_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-error_logs-timestamp.md): A single API error log for a particular EVSE is uniquely identified by the timestamp it was sampled at.
 - [GET /evses/{evse_id}/ocpp_logs](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-ocpp_logs.md): List the historical OCPP message logs for a specific EVSE. These logs record OCPP messages sent to or received from the charger.
 - [GET /evses/{evse_id}/ocpp_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-ocpp_logs-timestamp.md): An EVSE OCPP log is uniquely identified by the combination of EVSE ID and the time it was sampled at.
 - [GET /evses/{evse_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this EVSE.
 - [GET /evses/{evse_id}/connectivity](https://developers.ev.energy/ev.energy-api-v2/evses/get-evses-evse_id-connectivity.md): Returns a snapshot of the EVSE's connectivity metrics including signal strength, SIM data, firmware version, and connection reliability.
 - [POST /evses/{evse_id}/reconnect](https://developers.ev.energy/ev.energy-api-v2/evses/post-evses-evse_id-reconnect.md): Create a reconnection request URL for the EVSE. The EVSE must have a user assigned.
 - [GET /evse_firmware_versions](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_firmware_versions.md): List EVSE firmware versions available in the catalogue. Only firmware versions flagged as production releases are returned.
 - [GET /evse_firmware_versions/{evse_firmware_version_id}](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_firmware_versions-evse_firmware_version_id.md): Retrieve a single EVSE firmware version by ID.
 - [GET /evse_onboarding](https://developers.ev.energy/ev.energy-api-v2/evses/get-evse_onboarding.md): Initiate the onboarding process for a new EVSE in your user's browser (or an embedded web view in an app). If neither `make_id` or `model_id` are passed as query parameters, the user will be shown a u
 - [POST /evse_onboarding/import](https://developers.ev.energy/ev.energy-api-v2/evses/post-evse_onboarding-import.md): Import an EVSE into the ev.energy system using its serial number and the authenticated user's email. The backend calls the provider's API to look up the device and link it; the response is the freshly
 - [POST /evse_waitlist](https://developers.ev.energy/ev.energy-api-v2/evses/post-evse_waitlist.md): Captures a user who hit an `incompatible` result on the EVSE compatibility check, so we can notify them once their hardware becomes supported. Pre-account endpoint — no OAuth token required. Driver au
## Home Batteries

 - [HomeBatteryMake](https://developers.ev.energy/ev.energy-api-v2/home-batteries/homebatterymake.md): Schema: #/components/schemas/HomeBatteryMake
 - [HomeBatteryModel](https://developers.ev.energy/ev.energy-api-v2/home-batteries/homebatterymodel.md): Schema: #/components/schemas/HomeBatteryModel
 - [HomeBattery](https://developers.ev.energy/ev.energy-api-v2/home-batteries/homebattery.md): Schema: #/components/schemas/HomeBattery
 - [HomeBatteryStatusLog](https://developers.ev.energy/ev.energy-api-v2/home-batteries/homebatterystatuslog.md): Schema: #/components/schemas/HomeBatteryStatusLog
 - [GET /home_battery_makes](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_battery_makes.md): List all the home battery makes known by the ev.energy system.
 - [GET /home_battery_makes/{home_battery_make_id}](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_battery_makes-home_battery_make_id.md): Retrieve details for a single, specific home battery make.
 - [GET /home_battery_models](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_battery_models.md): List all the home battery models known by the ev.energy system.
 - [GET /home_battery_models/{home_battery_model_id}](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_battery_models-home_battery_model_id.md): Retrieve details for a single, specific home battery model.
 - [GET /home_batteries](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_batteries.md): List all the home batteries that the authorization token has access to.
 - [GET /home_batteries/{home_battery_id}](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_batteries-home_battery_id.md): Retrieve a single, specific home battery's details.
 - [GET /home_batteries/{home_battery_id}/status_logs](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_batteries-home_battery_id-status_logs.md): List the historical status logs for a specific home battery. Used to find out the state of the battery at each point it reported in to ev.energy.
 - [GET /home_batteries/{home_battery_id}/status_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/home-batteries/get-home_batteries-home_battery_id-status_logs-timestamp.md): A home battery status log is uniquely identified by the combination of home battery ID and the time it was sampled at.
## Incentives

 - [GET /incentives](https://developers.ev.energy/ev.energy-api-v2/incentives/get-incentives.md): List the incentives an organisation's participants earned under its programs, newest recorded first. An incentive is visible to an organisation when its scheme belongs to one of the organisation's pro
 - [GET /incentives/{incentive_id}](https://developers.ev.energy/ev.energy-api-v2/incentives/get-incentives-incentive_id.md): Retrieve one incentive the organisation may see. An incentive outside the organisation's programs returns `404`, the same as one that does not exist.
## Notifications

 - [GET /notifications](https://developers.ev.energy/ev.energy-api-v2/notifications/get-notifications.md): Lists notifications for the user making the request. For each notification it returns a category (INFO, ERROR etc) and a title (in the user's language) for display in their inbox.
 - [PATCH /notifications/{notification_id}](https://developers.ev.energy/ev.energy-api-v2/notifications/patch-notifications-notification_id.md): Update a notification.
 - [GET /notifications/{notification_id}](https://developers.ev.energy/ev.energy-api-v2/notifications/get-notifications-notification_id.md): Retrieves the full details of a specified notification. The title, short_text and long_text fields will be translated into the user's language.
## Programs

 - [GET /programs/{program_id}/vehicle_compatibility](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-vehicle_compatibility.md): List vehicle compatibility records for a specific program. Returns all active vehicle models that are supported by the given program.
 - [GET /programs](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs.md): By default, this endpoint returns all programs in our system and does not require authentication. The `coordinates`, `postal_code` and `country_code` query parameters can be used to narrow the list do
 - [GET /programs/{program_id}](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id.md): Retrieve details for a single, specific program.
 - [GET /incentive_schemes](https://developers.ev.energy/ev.energy-api-v2/programs/get-incentive_schemes.md): Returns a list of Incentive Schemes that the authenticated User is eligble for.
 - [POST /programs/{program_id}/user_verification](https://developers.ev.energy/ev.energy-api-v2/programs/post-programs-user-verification.md): Upload a user's utility account information for verification and account matching against the utility's customer data. An endpoint to serve this data will be added in future.
 - [POST /programs/{program_id}/join](https://developers.ev.energy/ev.energy-api-v2/programs/post-programs-program_id-join.md): Enrol the authenticated user in this program's default tier. If the user is already enrolled in a different program they will leave it before joining this one. Re-joining a program the user is already
 - [GET /programs/{program_id}/tiers](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-tiers.md): List all selectable tiers under the given Program. Public read-only — no authentication required. When the request is authenticated as a specific user (Authorization Code grant, or Client Credentials
 - [GET /programs/{program_id}/tiers/{tier_id}](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-tiers-tier_id.md): Retrieve a single tier nested under a Program. Public read-only. The `eligible` field is per-user (see the list endpoint description).
 - [GET /programs/{program_id}/participation_agreement_versions](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-participation_agreement_versions.md): List versions of the Participation Agreement attached to the given Program. Public read-only — no authentication required. Fetch the single currently active version from the `current` sub-resource.
 - [GET /programs/{program_id}/participation_agreement_versions/{participation_agreement_version_id}](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-participation_agreement_versions-id.md): Retrieve a single Participation Agreement Version nested under a Program. Public read-only.
 - [GET /programs/{program_id}/participation_agreement_versions/current](https://developers.ev.energy/ev.energy-api-v2/programs/get-programs-program_id-participation_agreement_versions-current.md): Retrieve the currently active Participation Agreement Version — the highest-numbered published version of the Program's agreement. `current` is a magic value used in place of a version UID. Public rea
 - [POST /programs/{program_id}/participation_agreement_versions/{participation_agreement_version_id}/accept](https://developers.ev.energy/ev.energy-api-v2/programs/post-programs-program_id-participation_agreement_versions-id-accept.md): Record that the authenticated user has accepted the given Participation Agreement Version, identified by its UID (e.g. the `id` returned by the `current` sub-resource). The request body must be an emp
 - [POST /programs/{program_id}/post-enrollment-verification](https://developers.ev.energy/ev.energy-api-v2/programs/post-programs-post-enrollment-verification.md): Upload a user's post-enrollment verification data for account verification. This endpoint validates data against the program's post-enrollment verification schema.
## Rebates

 - [UserRebateCreated](https://developers.ev.energy/ev.energy-api-v2/rebates/userrebatecreated.md): Schema: #/components/schemas/UserRebateCreated
 - [GET /rebate_types](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebate_types.md): Retrieve a list of rebate types available to the user.
 - [GET /rebate_types/{rebate_type_id}](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebate_types-rebate_type_id.md): Retrieve a specific rebate type by id.
 - [GET /rebate_evidence_types](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebate_evidence_types.md): Retrieve a list of rebate types available to the user.
 - [GET /rebate_evidence_types/{rebate_evidence_type_id}](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebate_types-rebate_evidence_type_id.md): Retrieve a specific rebate evidence type by id.
 - [POST /user_rebates](https://developers.ev.energy/ev.energy-api-v2/rebates/post-rebates.md): Creates a rebate application, returning the application ID.
 - [GET /user_rebates](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebates.md): Lists all a user's rebate applications.
 - [GET /user_rebates/{user_rebate_id}](https://developers.ev.energy/ev.energy-api-v2/rebates/get-rebates-application_id.md): Retrieve a specific rebate application.
 - [PATCH /user_rebates/{user_rebate_id}](https://developers.ev.energy/ev.energy-api-v2/rebates/patch-user_rebates-application_id.md): Attach evidence to a rebate application.
 - [POST /user_rebates/{user_rebate_id}:submit](https://developers.ev.energy/ev.energy-api-v2/rebates/post-user_rebates-application_id-:submit.md): Once all evidence data and files have been uploaded, this endpoint is called to submit the rebate application for review by updating the Form status to "complete" and the application status to "pendin
 - [POST /rebate_evidence_files:start_upload](https://developers.ev.energy/ev.energy-api-v2/rebates/post-rebate-evidence_files:start_upload.md): This endpoint creates the RebateEvidenceFile record and returns its uid as well as a presigned URL to use for direct upload to AWS S3.
 - [POST /rebate_evidence_files/{rebate_evidence_file_id}:finish_upload](https://developers.ev.energy/ev.energy-api-v2/rebates/post-rebate-evidence_files-evidence_file_id-:finish_upload.md): After the file is successfully uploaded to S3 via the presigned URL, this endpoint is called to set the upload_finished_at timestamp on the evidence_file record.
 - [GET /rebate_evidence_files](https://developers.ev.energy/ev.energy-api-v2/rebates/get-user_rebates-application_id-evidence_files.md): List all user's rebate evidence files
 - [GET /rebate_evidence_files/{rebate_evidence_file_id}](https://developers.ev.energy/ev.energy-api-v2/rebates/get-user_rebates-application_id-evidence_files-evidence_file_id.md): Retrieve the details of a specific rebate evidence file.
## Promo Codes

 - [GET /promo_codes](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_codes.md): List the promo codes owned by the caller's organisation, each with its redemption counts broken down by stage. The organisation comes from the credential, never from a query parameter: a Clerk sessio
 - [POST /promo_codes](https://developers.ev.energy/ev.energy-api-v2/promo-codes/post-promo_codes.md): Mint a promo code owned by the caller's organisation. The owner is derived from the credential and is never taken from the request body. `organisation` may be supplied to state the intended owner expl
 - [GET /promo_codes/{promo_code_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_codes-promo_code_id.md): Retrieve one of the caller organisation's promo codes.
 - [PATCH /promo_codes/{promo_code_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/patch-promo_codes-promo_code_id.md): Update a promo code's `label`, `campaign_ref` or `status`. The `code` string is immutable once issued — it is printed on physical media and embedded in live links — and an attempt to change it is reje
 - [GET /promo_code_redemptions](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_code_redemptions.md): The per-redemption ledger for the caller organisation's codes, with the stage each redemption has reached. Rows are anonymised: no email, name, phone, address or user id, and `id` is the redemption's
 - [GET /promo_code_redemptions/{redemption_id}](https://developers.ev.energy/ev.energy-api-v2/promo-codes/get-promo_code_redemptions-redemption_id.md): Retrieve a single anonymised redemption row for one of the caller organisation's codes.
## Regions

 - [GET /regions](https://developers.ev.energy/ev.energy-api-v2/regions/get-regions.md): List the regions created by your organisation plus public reference regions maintained by ev.energy (geometry omitted — retrieve a single region for its GeoJSON boundary).
 - [POST /regions](https://developers.ev.energy/ev.energy-api-v2/regions/post-regions.md): Create a single region. The submitted geometries are unioned server-side into one MultiPolygon. Region names are unique across all organisations: a name clash returns 409 with the existing region's UR
 - [GET /regions/{region_id}](https://developers.ev.energy/ev.energy-api-v2/regions/get-regions-region_id.md): Retrieve a single region created by your organisation or a public reference region, including its full GeoJSON MultiPolygon geometry.
 - [GET /region_groups](https://developers.ev.energy/ev.energy-api-v2/regions/get-region_groups.md): List the region groups created by your organisation.
 - [POST /region_groups](https://developers.ev.energy/ev.energy-api-v2/regions/post-region_groups.md): Atomically create a region group together with its member regions. Names are unique across all organisations, and every submitted region name must be fresh — a clash with an existing region always fai
 - [GET /region_groups/{region_group_id}](https://developers.ev.energy/ev.energy-api-v2/regions/get-region_groups-region_group_id.md)
 - [POST /region_groups:validate](https://developers.ev.energy/ev.energy-api-v2/regions/post-region_groups:validate.md): Zero-write dry-run of POST /region_groups with the identical body. Always returns 200 for content findings (name clashes, invalid geometry, duplicate names) — the findings ARE the response. Clashing e
## Root

 - [GET /](https://developers.ev.energy/ev.energy-api-v2/root/get-root.md): Get links to resources accessible in the API.
## Schedules

 - [ScheduleInterval](https://developers.ev.energy/ev.energy-api-v2/schedules/scheduleinterval.md): Schema: #/components/schemas/ScheduleInterval
## Sites

 - [UserSiteStatusLog](https://developers.ev.energy/ev.energy-api-v2/sites/usersitestatuslog.md): Schema: #/components/schemas/UserSiteStatusLog
 - [GET /evse_sites](https://developers.ev.energy/ev.energy-api-v2/sites/get-evse_sites.md): List all available EVSE Sites
 - [GET /evse_sites/{evse_site_id}](https://developers.ev.energy/ev.energy-api-v2/sites/get-evse_sites-evse_site_id.md): Retrieve a single, specific EVSESite's details.
 - [GET /user_sites](https://developers.ev.energy/ev.energy-api-v2/sites/get-user_sites.md): List all available User Sites. A User Site is a driver's household.
 - [GET /user_sites/{user_site_id}](https://developers.ev.energy/ev.energy-api-v2/sites/get-user_sites-user_site_id.md): Retrieve a single, specific User Site's details.
 - [GET /user_sites/{user_site_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/sites/get-user_sites-user_site_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this site.
 - [GET /user_sites/{user_site_id}/status_logs](https://developers.ev.energy/ev.energy-api-v2/sites/get-user_sites-user_site_id-status_logs.md): Returns the site's status as of `sampled_at__lte` (now by default), rolled up from each of its devices' latest status log in the requested range. The list is empty when no device has a status log in t
 - [GET /cpms_providers](https://developers.ev.energy/ev.energy-api-v2/sites/get-cpms_providers.md): Get a list of all the ChargePoint Management System Providers that we integrate with.
 - [GET /cpms_providers/{cpms_provider_id}](https://developers.ev.energy/ev.energy-api-v2/sites/get-cpms_providers-provider_id.md): Get details on a single CPMS provider.
## Solar

 - [GET /solar_arrays](https://developers.ev.energy/ev.energy-api-v2/solar/get-solar-arrays.md): List all the solar arrays that the authorization token has access to.
 - [POST /solar_arrays](https://developers.ev.energy/ev.energy-api-v2/solar/post-solar-arrays.md): Creates a solar array and associates it with the user.
 - [GET /solar_arrays/{solar_array_id}](https://developers.ev.energy/ev.energy-api-v2/solar/get-solar-arrays-solar_array_id.md): Retrieve a single, specific solar array's details.
 - [PATCH /solar_arrays/{solar_array_id}](https://developers.ev.energy/ev.energy-api-v2/solar/patch-solar_arrays-solar_array_id.md): Update a solar array.
 - [POST /inverters](https://developers.ev.energy/ev.energy-api-v2/solar/post-inverters.md): Creates an Inverter and associates it with a user's solar array.
 - [GET /inverters](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverters.md): List all the inverters that the authorization token has access to.
 - [GET /inverters/{inverter_id}](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverters-inverter_id.md): Retrieve a single, specific inverter's details.
 - [GET /inverter_makes](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverter_makes.md): List all the inverter makes known by the ev.energy system.
 - [GET /inverter_makes/{inverter_make_id}](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverter_makes-inverter_make_id.md): Retrieve details for a single, specific EVSE make.
 - [GET /inverter_models](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverter_models.md): List all the inverter models known by the ev.energy system.
 - [GET /inverter_models/{inverter_model_id}](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverter_models-inverter_model_id.md): Retrieve details for a single, specific inverter model.
 - [GET /inverter_onboarding](https://developers.ev.energy/ev.energy-api-v2/solar/get-inverter_onboarding.md): This endpoint will redirect to a web page that a user can use to login into their inverter account. This should be visited in a web browser as it contains interactive UI elements.
## Solar Forecasts

 - [SolarForecast](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/solarforecast.md): Schema: #/components/schemas/SolarForecast
 - [SolarForecastLog](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/solarforecastlog.md): Schema: #/components/schemas/SolarForecastLog
 - [GET /solar_forecasts](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/get-solar-forecasts.md): List all the solar forecasts that the authorization token has access to.
 - [GET /solar_forecasts/{solar_forecast_id}](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/get-solar-forecasts-solar_forecast_id.md): Retrieve a single, specific solar forecast's details.
 - [GET /solar_forecasts/{solar_forecast_id}/forecast_logs](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/get-solar-forecasts-solar_forecast_id-forecast_logs.md): List the historical forecast logs for a specific solar forecast. These logs record predicted solar energy production at specific times.
 - [GET /solar_forecasts/{solar_forecast_id}/forecast_logs/{valid_period_start}](https://developers.ev.energy/ev.energy-api-v2/solar-forecasts/get-solar-forecasts-solar_forecast_id-forecast_logs-valid_period_start.md): A solar forecast log is uniquely identified by the combination of solar forecast ID and the valid period start time.
## Subscriptions

 - [GET /subscriptions](https://developers.ev.energy/ev.energy-api-v2/subscriptions/get-subscriptions.md): List all the valid subscriptions that the authorization token has access to.
 - [GET /subscription_offerings/{offering_id}](https://developers.ev.energy/ev.energy-api-v2/subscriptions/get-subscription-offerings-offering_id.md): Retrieve a single, specific subscription offering's details.
## Support Tickets

 - [Support Ticket](https://developers.ev.energy/ev.energy-api-v2/support-tickets/supportticket.md): Schema: #/components/schemas/SupportTicket
 - [GET /support_tickets](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_tickets.md): List all support tickets that the authorization token has access to. Access control: - User-scoped tokens: Returns only tickets belonging to that user - Organization-scoped tokens: Returns only ticket
 - [GET /support_tickets/{support_ticket_id}](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_tickets-support_ticket_id.md): Retrieve information about a single, specific support ticket. Access control: - User-scoped tokens: Can only access tickets belonging to that user - Organization-scoped tokens: Can only access tickets
 - [PATCH /support_tickets/{support_ticket_id}](https://developers.ev.energy/ev.energy-api-v2/support-tickets/patch-support_tickets-support_ticket_id.md): Update support ticket categorization. Access control follows the same rules as retrieval: - User-scoped tokens: Can only update tickets belonging to that user - Organization-scoped tokens: Can only up
 - [GET /support_tickets/{support_ticket_id}/messages](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_tickets-support_ticket_id-messages.md): List all messages in a support ticket conversation, ordered by position. Access control follows the same rules as the parent support ticket: - User-scoped tokens: Can only access messages for tickets
 - [GET /support_tickets/{support_ticket_id}/messages/{message_id}](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_tickets-support_ticket_id-messages-message_id.md): Retrieve a single message from a support ticket conversation. Access control follows the same rules as the parent support ticket.
 - [GET /support_tickets/categories](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_tickets-categories.md): Returns all available support ticket categories and subcategories.
 - [GET /support-ticket-stats/sankey](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-sankey.md): Returns aggregated data for visualizing ticket flow from category to subcategory in a Sankey diagram. Only includes tickets with human-verified categories.
 - [GET /support-ticket-stats/volume](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-volume.md): Returns time series data showing ticket volume over time. Can be grouped by day, week, or month.
 - [GET /support-ticket-stats/resolution](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-resolution.md): Returns metrics about ticket resolution including resolution rate, average and median resolution times.
 - [GET /support-ticket-stats/status](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-status.md): Returns the distribution of tickets across different status values.
 - [GET /support-ticket-stats/priority](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-priority.md): Returns the distribution of tickets across different priority values.
 - [GET /support-ticket-stats/source](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-source.md): Returns the distribution of tickets across different source values.
 - [GET /support-ticket-stats/top-categories](https://developers.ev.energy/ev.energy-api-v2/support-tickets/get-support_ticket_stats-top-categories.md): Returns the most common categories and subcategories sorted by ticket count. Supports a limit parameter to control the number of results.
## Tariffs

 - [TariffBase](https://developers.ev.energy/ev.energy-api-v2/tariffs/tariffbase.md): Schema: #/components/schemas/TariffBase
 - [Tariff](https://developers.ev.energy/ev.energy-api-v2/tariffs/tariff.md): Schema: #/components/schemas/Tariff
 - [TariffDetail](https://developers.ev.energy/ev.energy-api-v2/tariffs/tariffdetail.md): Schema: #/components/schemas/TariffDetail
 - [Rate](https://developers.ev.energy/ev.energy-api-v2/tariffs/rate.md): Schema: #/components/schemas/Rate
 - [RatePeriod](https://developers.ev.energy/ev.energy-api-v2/tariffs/rateperiod.md): Schema: #/components/schemas/RatePeriod
 - [PublicHolidayRates](https://developers.ev.energy/ev.energy-api-v2/tariffs/publicholidayrates.md): Schema: #/components/schemas/PublicHolidayRates
 - [TariffCreate](https://developers.ev.energy/ev.energy-api-v2/tariffs/tariffcreate.md): Schema: #/components/schemas/TariffCreate
 - [TariffUpdate](https://developers.ev.energy/ev.energy-api-v2/tariffs/tariffupdate.md): Schema: #/components/schemas/TariffUpdate
 - [Supplier](https://developers.ev.energy/ev.energy-api-v2/tariffs/supplier.md): Schema: #/components/schemas/Supplier
 - [Times](https://developers.ev.energy/ev.energy-api-v2/tariffs/times.md): Schema: #/components/schemas/Times
 - [PriceSummary](https://developers.ev.energy/ev.energy-api-v2/tariffs/pricesummary.md): Schema: #/components/schemas/PriceSummary
 - [DailyPrices](https://developers.ev.energy/ev.energy-api-v2/tariffs/dailyprices.md): Schema: #/components/schemas/DailyPrices
 - [Price](https://developers.ev.energy/ev.energy-api-v2/tariffs/price.md): Schema: #/components/schemas/Price
 - [GET /suppliers](https://developers.ev.energy/ev.energy-api-v2/tariffs/get-suppliers.md): List all the energy suppliers known by the ev.energy system. Use the `available_for_user_id` query parameter to narrow the list to only those relevant to a specific user.
 - [GET /suppliers/{supplier_id}](https://developers.ev.energy/ev.energy-api-v2/tariffs/get-suppliers-suppler_id.md): Retrieve details for a single, specific energy supplier.
 - [GET /tariffs](https://developers.ev.energy/ev.energy-api-v2/tariffs/get-tariffs.md): List all the energy supplier tariffs known by the ev.energy system. Use the `available_for_user_id` query parameter to narrow the list to only those relevant to a specific user and `supplier` query pa
 - [POST /tariffs](https://developers.ev.energy/ev.energy-api-v2/tariffs/post-tariffs.md): Create a custom tariff from a weekly pattern of rates, optionally assigning it to a user in the same request. Use this when a user's tariff is not in the public list returned by `GET /tariffs`. See [C
 - [GET /tariffs/{tariff_id}](https://developers.ev.energy/ev.energy-api-v2/tariffs/get-tariffs-tariff_id.md): Retrieve details for a single, specific tariff. Public tariffs are visible to every application. A custom tariff created with `POST /tariffs` is private to the organisation that created it, and return
 - [PATCH /tariffs/{tariff_id}](https://developers.ev.energy/ev.energy-api-v2/tariffs/patch-tariffs-tariff_id.md): Rename or reprice a custom tariff created with `POST /tariffs`. To build a repricing body, paste the tariff's `GET /tariffs/{tariff_id}` response into the [tariff builder](/tools/tariff-builder). **Wh
 - [DELETE /tariffs/{tariff_id}](https://developers.ev.energy/ev.energy-api-v2/tariffs/delete-tariffs-tariff_id.md): Permanently delete a custom tariff and its prices. The same ownership rules as `PATCH /tariffs/{tariff_id}` apply: only the owner can delete a tariff, and public tariffs can never be deleted. A tariff
 - [GET /tariffs/{tariff_id}/prices](https://developers.ev.energy/ev.energy-api-v2/tariffs/get-tariff-prices.md): Returns all prices for the specified tariff. Results are ordered by start time (most recent first). Prices never overlap. When prices are revised, the most recently published price wins for the time i
## Users

 - [User](https://developers.ev.energy/ev.energy-api-v2/users/user.md): Schema: #/components/schemas/User
 - [UserNotificationPreferences](https://developers.ev.energy/ev.energy-api-v2/users/usernotificationpreferences.md): Schema: #/components/schemas/UserNotificationPreferences
 - [RoutePlannerPreferences](https://developers.ev.energy/ev.energy-api-v2/users/routeplannerpreferences.md): Schema: #/components/schemas/RoutePlannerPreferences
 - [PayoutMethod](https://developers.ev.energy/ev.energy-api-v2/users/payoutmethod.md): Schema: #/components/schemas/PayoutMethod
 - [SavedPlace](https://developers.ev.energy/ev.energy-api-v2/users/savedplace.md): Schema: #/components/schemas/SavedPlace
 - [SavedRoute](https://developers.ev.energy/ev.energy-api-v2/users/savedroute.md): Schema: #/components/schemas/SavedRoute
 - [GET /users](https://developers.ev.energy/ev.energy-api-v2/users/get-users.md): List all the users that the authorization token has access to.
 - [POST /users](https://developers.ev.energy/ev.energy-api-v2/users/post-users.md): Create an individual user in the ev.energy system.
 - [GET /users/{user_id}](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id.md): Retrieve information about a single, specific user.
 - [PATCH /users/{user_id}](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id.md): Update user information. Updating the email of a Clerk-managed user is permitted for client-credentials integrations, but not for authorization-code tokens, because it changes the account's recovery i
 - [GET /users/{user_id}/notification_preferences](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-notification_preferences.md): Retrieve the set of notification groups the user is currently subscribed to.
 - [PATCH /users/{user_id}/notification_preferences](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-notification_preferences.md): Update the user's notification group opt-in state. The `groups` object is treated as a partial map: only the keys you include are modified. Keys you omit are left untouched. This means clients only ne
 - [GET /users/{user_id}/route_planner_preferences](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-route_planner_preferences.md): Retrieve the user's EV Route Planner preferences (default vehicle, en-route minimum charger power, default arrival battery floor, and distance and temperature display units). A preferences row is cre
 - [PATCH /users/{user_id}/route_planner_preferences](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-route_planner_preferences.md): Update the user's EV Route Planner preferences. The body is treated as a partial map: only the keys you include are modified, omitted keys are left untouched. `PATCH {}` is a valid no-op. `preferred_v
 - [GET /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-payout-method.md): Retrieve the user's preferred payout method. Returns null fields when the user has not set up a payout method.
 - [PATCH /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-payout-method.md): Create or update the user's preferred payout method. The request must always include `receiver_wallet`. For `PAYPAL` and `VENMO` the client must also supply `receiver` (an email or phone respectively)
 - [DELETE /users/{user_id}/payout_method](https://developers.ev.energy/ev.energy-api-v2/users/delete-users-user_id-payout-method.md): Clear the user's preferred payout method. The user's stored `UserPayoutMethod` records are not removed; only the `preferred_payout_method` link on the user is cleared. Returns 204 even when the user a
 - [GET /users/{user_id}/saved_places](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-saved_places.md): List the user's saved route-planner places: places such as Home, Work or a relative's house that the driver picks with one tap as a start, destination or stop. Each user sees only their own places.
 - [POST /users/{user_id}/saved_places](https://developers.ev.energy/ev.energy-api-v2/users/post-users-user_id-saved_places.md): Create a new saved place for the user. The place is owned by the user named in the path; `id`, `url`, `user`, `created_at` and `updated_at` are assigned by the server. A user may save at most 20 place
 - [GET /users/{user_id}/saved_places/{saved_place_id}](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-saved_places-saved_place_id.md)
 - [PATCH /users/{user_id}/saved_places/{saved_place_id}](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-saved_places-saved_place_id.md): Partially update a saved place: rename it, change or clear its `label`, move its `location` (both coordinates together), or edit its `address`. Only the fields supplied are changed. Setting a `label`
 - [DELETE /users/{user_id}/saved_places/{saved_place_id}](https://developers.ev.energy/ev.energy-api-v2/users/delete-users-user_id-saved_places-saved_place_id.md)
 - [GET /users/{user_id}/saved_routes](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-saved_routes.md): List the user's saved route-planner routes. A saved route is a reusable "recipe" — origin, destination, waypoints and planning preferences — not a stored charging plan; the plan is recalculated on eac
 - [POST /users/{user_id}/saved_routes](https://developers.ev.energy/ev.energy-api-v2/users/post-users-user_id-saved_routes.md): Create a new saved route for the user. The route is owned by the user named in the path; `id`, `url`, `user` and `created_at` are assigned by the server. `last_used_at` defaults to now when omitted. A
 - [GET /users/{user_id}/saved_routes/{saved_route_id}](https://developers.ev.energy/ev.energy-api-v2/users/get-users-user_id-saved_routes-saved_route_id.md)
 - [PATCH /users/{user_id}/saved_routes/{saved_route_id}](https://developers.ev.energy/ev.energy-api-v2/users/patch-users-user_id-saved_routes-saved_route_id.md): Partially update a saved route: rename it, toggle `favourite`, bump `last_used_at` after a re-plan, or edit the endpoints. Only the fields supplied are changed.
 - [DELETE /users/{user_id}/saved_routes/{saved_route_id}](https://developers.ev.energy/ev.energy-api-v2/users/delete-users-user_id-saved_routes-saved_route_id.md)
 - [GET /route_planner/place_ids](https://developers.ev.energy/ev.energy-api-v2/users/get-route_planner-place_ids.md): Returns the Google Maps and Apple Maps place IDs for a public EVSE, so the EV Route Planner can hand each charging stop to a maps app by name rather than by coordinates. Core searches each provider fo
## Vehicles

 - [VehicleConnectors](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicleconnectors.md): Schema: #/components/schemas/VehicleConnectors
 - [VehicleStateOfCharge](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclestateofcharge.md): Schema: #/components/schemas/VehicleStateOfCharge
 - [VehicleModelConnector](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemodelconnector.md): Schema: #/components/schemas/VehicleModelConnector
 - [VehicleOnboardingCompleteRequest](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicleonboardingcompleterequest.md): Schema: #/components/schemas/VehicleOnboardingCompleteRequest
 - [VehicleOnboardingCompleteResponse](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicleonboardingcompleteresponse.md): Schema: #/components/schemas/VehicleOnboardingCompleteResponse
 - [VehicleWaitlistRequest](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclewaitlistrequest.md): Schema: #/components/schemas/VehicleWaitlistRequest
 - [VehicleWaitlistResponse](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclewaitlistresponse.md): Schema: #/components/schemas/VehicleWaitlistResponse
 - [VehicleOnboardingJsonResponse](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicleonboardingjsonresponse.md): Schema: #/components/schemas/VehicleOnboardingJsonResponse
 - [Vehicle](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicle.md): Schema: #/components/schemas/Vehicle
 - [Vehicle](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclewrite.md): Schema: #/components/schemas/VehicleWrite
 - [VehicleTrim](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicletrim.md): Schema: #/components/schemas/VehicleTrim
 - [VehicleTrimCreate](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicletrimcreate.md): Schema: #/components/schemas/VehicleTrimCreate
 - [VehicleMakeWrite](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemakewrite.md): Schema: #/components/schemas/VehicleMakeWrite
 - [VehicleModelWrite](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemodelwrite.md): Schema: #/components/schemas/VehicleModelWrite
 - [VehicleModel](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemodel.md): Schema: #/components/schemas/VehicleModel
 - [VehicleModelConnectorDefault](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemodelconnectordefault.md): Schema: #/components/schemas/VehicleModelConnectorDefault
 - [VehicleMake](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclemake.md): Schema: #/components/schemas/VehicleMake
 - [ProgramVehicleCompatibility](https://developers.ev.energy/ev.energy-api-v2/vehicles/programvehiclecompatibility.md): Schema: #/components/schemas/ProgramVehicleCompatibility
 - [VehicleStatusLog](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclestatuslog.md): Schema: #/components/schemas/VehicleStatusLog
 - [VehicleAPIErrorLog](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehicleapierrorlog.md): Schema: #/components/schemas/VehicleAPIErrorLog
 - [VehicleLocationLog](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclelocationlog.md): Schema: #/components/schemas/VehicleLocationLog
 - [VehicleCommandLog](https://developers.ev.energy/ev.energy-api-v2/vehicles/vehiclecommandlog.md): Schema: #/components/schemas/VehicleCommandLog
 - [GET /vehicles/{vehicle_id}/connectors](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-connectors.md): Retrieve the vehicle's DC-fast charging connectors: its native plug and any adapters it carries. `native_connector` is the per-vehicle value, falling back to the vehicle model's default when not overr
 - [PATCH /vehicles/{vehicle_id}/connectors](https://developers.ev.energy/ev.energy-api-v2/vehicles/patch-vehicles-vehicle_id-connectors.md): Update the vehicle's connectors. The body is a partial map: only the keys you include are changed. Set `native_connector` to override the model default for this vehicle, or `null` to inherit it. `adap
 - [GET /vehicles/{vehicle_id}/state_of_charge](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-state_of_charge.md): Retrieve the vehicle's current battery percentage used to seed route plans. `source` indicates where the value came from: `MANUAL` when the driver entered it, or `CONNECTED` when it comes from the veh
 - [PATCH /vehicles/{vehicle_id}/state_of_charge](https://developers.ev.energy/ev.energy-api-v2/vehicles/patch-vehicles-vehicle_id-state_of_charge.md): Set the vehicle's current battery percentage (Mode-1 manual entry). The body is a partial map: `PATCH {}` is a valid no-op. Send `state_of_charge_percentage: null` to clear it. `source` is read-only.
 - [GET /vehicles](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles.md): List all the vehicles that the authorization token has access to.
 - [POST /vehicles](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicles.md): If a vehicle cannot be integrated with our system, an "unintegrated" vehicle must be created instead to represent it and record important details like battery size. To add a vehicle that can be integr
 - [GET /vehicles/{vehicle_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id.md): Retrieve a single, specific vehicle's details.
 - [PATCH /vehicles/{vehicle_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/patch-vehicles.md): Update a vehicle.
 - [DELETE /vehicles/{vehicle_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/delete-vehicles.md): Remove a vehicle by disconnecting it from the ev.energy system.
 - [GET /vehicle_trims](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_trims.md): List all the vehicle trims known by the ev.energy system. Trim refers to a set of features that can be applied to a particular model of vehicle: https://en.wikipedia.org/wiki/Car_model#Trim_level. Pas
 - [POST /vehicle_trims](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_trims.md): Creates a new trim for the specified model that can be used if we are missing a trim. These trims will not be available in the list trims api call
 - [GET /vehicle_trims/{vehicle_trim_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_trims-vehicle_trim_id.md): Retrieve details for a single, specific vehicle trim. Trim refers to a set of features that can be applied to a particular model of vehicle: https://en.wikipedia.org/wiki/Car_model#Trim_level.
 - [GET /vehicle_models](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_models.md): List all the vehicle models known by the ev.energy system. Use the `available_for_user_id` query parameter to narrow the list to only those supported for a specific user's program and tier. Use the `c
 - [POST /vehicle_models](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_models.md): Create a new vehicle model in the ev.energy system. Newly created models are hidden by default and must be reviewed before becoming visible.
 - [GET /vehicle_models/{vehicle_model_id}/connectors](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_models-vehicle_model_id-connectors.md): List a vehicle model's DC-fast connectors, one per charging region. A model's connector can differ by market (e.g. NACS in North America, CCS in Europe), so each row records the connector for one regi
 - [POST /vehicle_models/{vehicle_model_id}/connectors](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_models-vehicle_model_id-connectors.md): Create a connector row for one region of a vehicle model. `(vehicle_model, region)` is unique; adding a second row for the same region returns a `400`. Requires the `vehicle_catalogue:write` scope.
 - [GET /vehicle_models/{vehicle_model_id}/connectors/{region}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_models-vehicle_model_id-connectors-region.md)
 - [PATCH /vehicle_models/{vehicle_model_id}/connectors/{region}](https://developers.ev.energy/ev.energy-api-v2/vehicles/patch-vehicle_models-vehicle_model_id-connectors-region.md): Partially update the connector row for one region. Only the fields supplied are changed; `region` is the key and cannot be changed. Requires the `vehicle_catalogue:write` scope.
 - [GET /vehicle_models/{vehicle_model_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_models-vehicle_model_id.md): Retrieve details for a single, specific vehicle model. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /vehicle_models/{vehicle_model_id}/connector_default](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_models-vehicle_model_id-connector_default.md): The model's native DC-fast connector for the caller's charging region, for pre-filling the add-vehicle connector picker. The region is resolved server-side from the authenticated user's market. Pass `
 - [GET /vehicle_makes](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_makes.md): List all the vehicle makes known by the ev.energy system. Use the `available_for_user_id` query parameter to narrow the list to only those supported for a specific user's program and tier. Use the `co
 - [POST /vehicle_makes](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_makes.md): Create a new vehicle make in the ev.energy system, for a driver whose car's make isn't listed. Newly created makes are hidden by default and must be reviewed before becoming visible. If a make with th
 - [GET /vehicle_makes/{vehicle_make_id}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_makes-vehicle_make_id.md): Retrieve details for a single, specific vehicle make. Anonymous callers are rate limited to 50 requests per hour per IP.
 - [GET /vehicles/{vehicle_id}/status_logs](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-status_logs.md): List the historical status logs for a specific Vehicle. Used to find out the state of the Vehicle at each point it reported in to ev.energy.
 - [GET /vehicles/{vehicle_id}/status_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-status_logs-timestamp.md): A single status log for a particular vehicle is uniquely identified by the timestamp it was logged at.
 - [GET /vehicles/{vehicle_id}/error_logs](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-error_logs.md): List the historical API error logs for a specific Vehicle. These logs capture errors that occurred when attempting to communicate with the vehicle's telematics API.
 - [GET /vehicles/{vehicle_id}/error_logs/{logged_at}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-error_logs-timestamp.md): A single API error log for a particular vehicle is uniquely identified by the timestamp it was logged at.
 - [GET /vehicles/{vehicle_id}/location_logs](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-location_logs.md): List the historical location log timestamps for a specific Vehicle. Returns metadata about when location data was recorded, without exposing the actual location coordinates.
 - [GET /vehicles/{vehicle_id}/location_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-location_logs-timestamp.md): A single location log for a particular vehicle is uniquely identified by the timestamp it was sampled at. Returns metadata only, without exposing the actual location coordinates.
 - [GET /vehicles/{vehicle_id}/command_logs](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-command_logs.md): List the historical command logs for a specific Vehicle. These logs record commands that were sent to the vehicle.
 - [GET /vehicles/{vehicle_id}/command_logs/{logged_at}](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-command_logs-timestamp.md): A single command log for a particular vehicle is uniquely identified by the timestamp it was logged at.
 - [GET /vehicles/{vehicle_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicles-vehicle_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this vehicle.
 - [GET /vehicle_onboarding](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_onboarding.md): Initiate the onboarding process for a new vehicle in your user's browser (or an embedded web view in an app). If none of `make_id`, `model_id` or `trim_id` are passed as query parameters, the user wil
 - [POST /vehicle_onboarding/complete](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_onboarding-complete.md): Exchanges a provider `auth_code` for a list of vehicles, completing an onboarding flow that was initiated via `GET /v2/vehicle_onboarding/?response_type=json`. Used primarily by native mobile clients
 - [POST /vehicle_onboarding/onboarding_link](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_onboarding-onboarding_link.md): Generates a vehicle onboarding deep link for the authenticated user and sends a Braze event containing the email, make name and onboarding URL. Requires an OAuth token with `vehicle:write` scope.
 - [GET /vehicle_compatibility/check](https://developers.ev.energy/ev.energy-api-v2/vehicles/get-vehicle_compatibility-check.md): Returns whether the given vehicle model is supported in the supplied country. Used by the onboarding flow to tell the user upfront whether their vehicle will work before any account-linking step. Publ
 - [POST /vehicle_waitlist](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicle_waitlist.md): Captures a user who hit an `incompatible` result on the vehicle compatibility check, so we can notify them once their hardware becomes supported. Pre-account endpoint — no OAuth token required. Driver
 - [POST /vehicles/{vehicle_id}/reconnect](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicles-vehicle_id-reconnect.md): Create a reconnection request URL for the Vehicle.
 - [POST /vehicles/{vehicle_id}/disconnect](https://developers.ev.energy/ev.energy-api-v2/vehicles/post-vehicles-vehicle_id-disconnect.md): Disconnect the vehicle's integration. Revokes provider OAuth tokens and invalidates the underlying account, leaving the vehicle in an `INACTIVE` state. Any open charging sessions on cars sharing the a
## VPP

 - [DispatchCoordinator](https://developers.ev.energy/ev.energy-api-v2/vpp/dispatchcoordinator.md): Schema: #/components/schemas/DispatchCoordinator
 - [DispatchLog](https://developers.ev.energy/ev.energy-api-v2/vpp/dispatchlog.md): Schema: #/components/schemas/DispatchLog
 - [GBAggregateForecast](https://developers.ev.energy/ev.energy-api-v2/vpp/gbaggregateforecast.md): Schema: #/components/schemas/GBAggregateForecast
 - [GBAssetActual](https://developers.ev.energy/ev.energy-api-v2/vpp/gbassetactual.md): Schema: #/components/schemas/GBAssetActual
 - [DispatchEvent](https://developers.ev.energy/ev.energy-api-v2/vpp/dispatchevent.md): Schema: #/components/schemas/DispatchEvent
 - [DispatchEventCancelResponse](https://developers.ev.energy/ev.energy-api-v2/vpp/dispatcheventcancelresponse.md): Schema: #/components/schemas/DispatchEventCancelResponse
 - [DispatchEventWrite](https://developers.ev.energy/ev.energy-api-v2/vpp/dispatcheventwrite.md): Schema: #/components/schemas/DispatchEventWrite
 - [GET /evses/{evse_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/vpp/get-evses-evse_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this EVSE.
 - [GET /vehicles/{vehicle_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/vpp/get-vehicles-vehicle_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this vehicle.
 - [GET /user_sites/{user_site_id}/vpp_modes](https://developers.ev.energy/ev.energy-api-v2/vpp/get-user_sites-user_site_id-vpp_modes.md): Returns the VPP (Virtual Power Plant) control modes supported by this site.
 - [GET /dispatch_coordinators](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators.md): List all available dispatch coordinators.
 - [GET /dispatch_coordinators/{dispatch_coordinator_id}](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators-dispatch_coordinator_id.md): Retrieve a single dispatch coordinator's details.
 - [POST /dispatch_coordinators/{dispatch_coordinator_id}/dispatch_events](https://developers.ev.energy/ev.energy-api-v2/vpp/post-dispatch_coordinators-dispatch_coordinator_id-dispatch_events.md): Create a dispatch event for a dispatch coordinator. This is a placeholder endpoint — the event is validated and returned but not persisted.
 - [POST /dispatch_coordinators/{dispatch_coordinator_id}/dispatch_events/{dispatch_event_id}/cancel](https://developers.ev.energy/ev.energy-api-v2/vpp/post-dispatch_coordinators-dispatch_coordinator_id-dispatch_events-dispatch_event_id-cancel.md): Cancel a dispatch event to stop an active or scheduled dispatch.
 - [GET /dispatch_coordinators/{dispatch_coordinator_id}/dispatch_logs](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators-dispatch_coordinator_id-dispatch_logs.md): List the historical dispatch logs for a specific dispatch coordinator. These logs record aggregate fleet charging power at a point in time.
 - [GET /dispatch_coordinators/{dispatch_coordinator_id}/dispatch_logs/{logged_at}](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators-dispatch_coordinator_id-dispatch_logs-timestamp.md): A single dispatch log for a particular dispatch coordinator is uniquely identified by the timestamp it was logged at.
 - [GET /dispatch_coordinators/{dispatch_coordinator_id}/gb_aggregate_forecasts](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators-dispatch_coordinator_id-gb_aggregate_forecasts.md): Half-hourly energy import forecasts for the assets enrolled under this GB dispatch coordinator, one row per settlement period on the settlement dates the coordinator is live. A GB dispatch coordinator
 - [GET /dispatch_coordinators/{dispatch_coordinator_id}/gb_asset_actuals](https://developers.ev.energy/ev.energy-api-v2/vpp/get-dispatch_coordinators-dispatch_coordinator_id-gb_asset_actuals.md): Half-hourly metered energy import for each asset enrolled under this GB dispatch coordinator, one row per MPAN and settlement period in which the asset was plugged in at home, on the settlement dates
## Webhooks

 - [GET /webhook_portal](https://developers.ev.energy/ev.energy-api-v2/webhooks/get-webhook_portal.md): Generate a one time use link to access the portal to configure webhooks.
## Auth

 - [POST /auth/password_reset](https://developers.ev.energy/ev.energy-api-v2/auth/post-auth-password_reset.md): Request a password reset email for the account with the supplied email address. The response status and body are identical whether or not an account exists for the email; clients must not treat the su
## CT Clamps

 - [CTClamp](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/ctclamp.md): Schema: #/components/schemas/CTClamp
 - [CTClampLog](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/ctclamplog.md): Schema: #/components/schemas/CTClampLog
 - [GET /ct_clamps](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/get-ct-clamps.md): List all CT clamps that the authorization token has access to.
 - [GET /ct_clamps/{ct_clamp_id}](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/get-ct-clamps-ct_clamp_id.md): Retrieve a single CT clamp's details.
 - [GET /ct_clamps/{ct_clamp_id}/logs](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/get-ct-clamps-ct_clamp_id-logs.md): List the historical current measurement logs for a specific CT clamp.
 - [GET /ct_clamps/{ct_clamp_id}/logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/ct-clamps/get-ct-clamps-ct_clamp_id-logs-sampled_at.md): Retrieve a single CT clamp log entry.
## Grid

 - [GridFeed](https://developers.ev.energy/ev.energy-api-v2/grid/gridfeed.md): Schema: #/components/schemas/GridFeed
 - [GridLevel](https://developers.ev.energy/ev.energy-api-v2/grid/gridlevel.md): Schema: #/components/schemas/GridLevel
 - [GET /grid_feeds](https://developers.ev.energy/ev.energy-api-v2/grid/get-grid_feeds.md): List all grid feeds visible to the authenticated client. Grid feeds represent sources of grid signal data used for smart charging decisions.
 - [GET /grid_feeds/{grid_feed_id}](https://developers.ev.energy/ev.energy-api-v2/grid/get-grid_feeds-grid_feed_id.md): Retrieve a specific grid feed used for smart charging decisions.
 - [GET /grid_feeds/{grid_feed_id}/levels](https://developers.ev.energy/ev.energy-api-v2/grid/get-grid_feeds-grid_feed_id-levels.md): Returns all levels for the specified grid feed. Levels represent the time-varying signal values that influence smart charging decisions. Each level applies to a specific time interval and has a value
## HEM Systems

 - [HEMSystem](https://developers.ev.energy/ev.energy-api-v2/hem-systems/hemsystem.md): Schema: #/components/schemas/HEMSystem
 - [HEMSystemLivePower](https://developers.ev.energy/ev.energy-api-v2/hem-systems/hemsystemlivepower.md): Schema: #/components/schemas/HEMSystemLivePower
 - [HEMSystemEnergyStatsBucket](https://developers.ev.energy/ev.energy-api-v2/hem-systems/hemsystemenergystatsbucket.md): Schema: #/components/schemas/HEMSystemEnergyStatsBucket
 - [HEMSystemEnergyStatsResponse](https://developers.ev.energy/ev.energy-api-v2/hem-systems/hemsystemenergystatsresponse.md): Schema: #/components/schemas/HEMSystemEnergyStatsResponse
 - [GET /hem_systems](https://developers.ev.energy/ev.energy-api-v2/hem-systems/get-hem_systems.md): List all the HEM systems that the authorization token has access to.
 - [GET /hem_systems/{hem_system_id}](https://developers.ev.energy/ev.energy-api-v2/hem-systems/get-hem_systems-hem_system_id.md): Retrieve a single HEM (Home Energy Management) system by ID.
 - [GET /hem_systems/{hem_system_id}/energy_stats](https://developers.ev.energy/ev.energy-api-v2/hem-systems/get-hem_systems-hem_system_id-energy_stats.md): Returns aggregated energy statistics for the HEM system over a specified time range and resolution. The bucket grid is always contiguous, and a bucket with no underlying data is returned with null va
 - [GET /hem_systems/{hem_system_id}/live_power](https://developers.ev.energy/ev.energy-api-v2/hem-systems/get-hem_systems-hem_system_id-live_power.md): Returns live power data for the HEM system. Power values (in watts) are derived from the most recent energy statistics, including raw measurements and calculated power flows between sources (solar, ba
## Boundary Meters

 - [BoundaryMeterMake](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/boundarymetermake.md): Schema: #/components/schemas/BoundaryMeterMake
 - [BoundaryMeterModel](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/boundarymetermodel.md): Schema: #/components/schemas/BoundaryMeterModel
 - [BoundaryMeter](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/boundarymeter.md): Schema: #/components/schemas/BoundaryMeter
 - [BoundaryMeterStatusLog](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/boundarymeterstatuslog.md): Schema: #/components/schemas/BoundaryMeterStatusLog
 - [GET /boundary_meter_makes](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meter_makes.md): List all the boundary meter makes known by the ev.energy system.
 - [GET /boundary_meter_makes/{boundary_meter_make_id}](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meter_makes-boundary_meter_make_id.md): Retrieve details for a single, specific boundary meter make.
 - [GET /boundary_meter_models](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meter_models.md): List all the boundary meter models known by the ev.energy system.
 - [GET /boundary_meter_models/{boundary_meter_model_id}](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meter_models-boundary_meter_model_id.md): Retrieve details for a single, specific boundary meter model.
 - [GET /boundary_meters](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meters.md): List all the boundary meters that the authorization token has access to.
 - [GET /boundary_meters/{boundary_meter_id}](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meters-boundary_meter_id.md): Retrieve a single, specific boundary meter's details.
 - [GET /boundary_meters/{boundary_meter_id}/status_logs](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meters-boundary_meter_id-status_logs.md): List the historical status logs for a specific boundary meter. Used to find out the state of the meter at each point it reported in to ev.energy.
 - [GET /boundary_meters/{boundary_meter_id}/status_logs/{sampled_at}](https://developers.ev.energy/ev.energy-api-v2/boundary-meters/get-boundary_meters-boundary_meter_id-status_logs-timestamp.md): A boundary meter status log is uniquely identified by the combination of boundary meter ID and the time it was sampled at.
## Reference Data

 - [GET /timezones](https://developers.ev.energy/ev.energy-api-v2/reference-data/get-timezones.md): Get the list of available IANA timezones.
 - [GET /timezones/{timezone_id}](https://developers.ev.energy/ev.energy-api-v2/reference-data/get-timezones-timezone_id.md): Retrieve a single timezone by its ID.
