REST API
Die HTTP REST API ist eine einfache Schnittstelle zur automatischen Änderung von Einstellungen. Diese Schnittstelle wird auch von der Weboberfläche verwendet.
Die komplette API-Spezifikation im OpenAPI-Format findest du hier.
openapi.yaml
openapi: 3.1.0
info:
title: evcc
description: Solar charging. Super simple.
version: "0.2.0"
contact:
url: https://github.com/evcc-io/evcc
servers:
- url: https://demo.evcc.io/api
tags:
- name: auth
- name: battery
- name: general
- name: loadpoints
- name: sessions
- name: system
- name: tariffs
- name: vehicles
paths:
/auth/login:
post:
operationId: login
summary: Login
description: "Administrator login. Returns authorization cookie required for all protected endpoints."
tags:
- auth
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
password:
$ref: "#/components/schemas/Password"
responses:
200:
description: Success
headers:
Set-Cookie:
description: The authorization cookie
schema:
type: string
example: >-
auth=ey...qY; Path=/; Expires=Fri, 04 Apr 2025 14:35:37 GMT;
HttpOnly; SameSite=Strict
401:
description: Invalid password provided
/auth/logout:
post:
operationId: logout
summary: Logout
description: Logout and delete authorization cookie
tags:
- auth
responses:
200:
description: Success
headers:
Set-Cookie:
description: The authorization cookie
schema:
type: string
enum:
- auth=; Path=/; HttpOnly
/auth/password:
put:
operationId: changePassword
summary: Change admin password
description: "Changes the admin password."
tags:
- auth
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ChangePassword"
responses:
202:
description: Success
400:
description: Invalid password provided
/auth/status:
get:
operationId: getAuthStatus
summary: Authentication status
description: Whether the current user is logged in.
tags:
- auth
responses:
200:
description: Success
content:
text/plain:
schema:
type: string
enum:
- "true"
- "false"
/batterydischargecontrol/{enable}:
post:
operationId: setBatteryDischargeControl
summary: Control battery-discharge
description: "Prevent home battery discharge during vehicle fast charging."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
parameters:
- $ref: "#/components/parameters/enable"
responses:
200:
$ref: "#/components/responses/BooleanResult"
/batterygridchargelimit:
delete:
operationId: removeBatteryGridChargeLimit
summary: Remove battery grid charge limit
description: "Remove battery grid charge limit."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
responses:
200:
$ref: "#/components/responses/NullResult"
/batterygridchargelimit/{cost}:
post:
operationId: setBatteryGridChargeLimit
summary: Set battery grid charge limit
description: "Charge home battery from grid when price or emissions are below the threshold. Uses price if a dynamic tariff exists. Uses emissions if a CO₂-tariff is configured. Ignored otherwise."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
parameters:
- $ref: "#/components/parameters/costLimit"
responses:
200:
$ref: "#/components/responses/NumberResult"
/batterymode:
delete:
operationId: disableExternalBatteryControl
summary: Disable external battery control
description: Default evcc control behavior is restored
tags:
- battery
responses:
200:
$ref: "#/components/responses/BatteryModeResult"
/batterymode/{batteryMode}:
post:
operationId: setExternalBatteryMode
summary: Set external battery mode
description: "Directly controls the mode of all controllable batteries. evcc behavior like 'price limit' or 'prevent discharge while fast charging' is overruled. External mode resets after 60s. The external system has to call this endpoint regularly."
tags:
- battery
parameters:
- $ref: "#/components/parameters/batteryMode"
responses:
200:
$ref: "#/components/responses/BatteryModeResult"
/buffersoc/{soc}:
post:
operationId: setBufferSoc
summary: Set battery buffer SoC
description: "Set battery buffer SoC."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
parameters:
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/NumberResult"
/bufferstartsoc/{soc}:
post:
operationId: setBufferStartSoc
summary: Set battery buffer start SoC
description: "Set battery buffer start SoC."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
parameters:
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/NumberResult"
/health:
get:
operationId: healthCheck
summary: Health check
description: Returns 200 if the evcc loop runs as expected.
tags:
- general
responses:
200:
description: Success
content:
text/plain:
schema:
type: string
example: OK
/loadpoints/{id}/batteryboost/{enable}:
post:
operationId: setLoadpointBatteryBoost
summary: Set battery boost
description: "Enable or disable battery boost."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery#battery-boost
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/enable"
responses:
200:
$ref: "#/components/responses/BooleanResult"
/loadpoints/{id}/disable/delay/{delay}:
post:
operationId: setLoadpointDisableDelay
summary: Disable threshold-delay
description: "Delay before charging stops in solar mode."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/delay"
responses:
200:
$ref: "#/components/responses/NanoSecondsResult"
/loadpoints/{id}/disable/threshold/{threshold}:
post:
operationId: setLoadpointDisableThreshold
summary: Disable threshold
description: "Specifies the grid draw power to stop charging in solar mode."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#threshold-1
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/threshold"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/enable/delay/{delay}:
post:
operationId: setLoadpointEnableDelay
summary: Enable threshold-delay
description: "Delay before charging starts in solar mode."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#delay
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/delay"
responses:
200:
$ref: "#/components/responses/NanoSecondsResult"
/loadpoints/{id}/enable/threshold/{threshold}:
post:
operationId: setLoadpointEnableThreshold
summary: Enable threshold
description: "Specifies the available surplus power to start charging in solar mode."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#threshold
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/threshold"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/limitenergy/{energy}:
post:
operationId: setLoadpointEnergyLimit
summary: Update energy limit
description: "Updates the energy limit of the loadpoint. Only available for guest vehicles and vehicles with unknown SoC. Limit is removed on vehicle disconnect."
externalDocs:
url: https://docs.evcc.io/en/docs/features/limit
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/energy"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/limitsoc/{soc}:
post:
operationId: setLoadpointSocLimit
summary: Update limit SoC
description: "Updates the SoC limit of the loadpoint. Requires a connected vehicle with known SoC. Limit is maintained across charging sessions."
externalDocs:
url: https://docs.evcc.io/en/docs/features/limit
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/maxcurrent/{current}:
post:
operationId: setLoadpointMaxCurrent
summary: Update maximum current
description: "Updates the maximum current of the loadpoint."
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/current"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/mincurrent/{current}:
post:
operationId: setLoadpointMinCurrent
summary: Update minimum current
description: "Updates the minimum current of the loadpoint."
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/current"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/mode/{mode}:
post:
operationId: setLoadpointMode
summary: Update charge mode
description: "Changes the charging behavior of the loadpoint."
externalDocs:
url: https://docs.evcc.io/en/docs/features/solar-charging
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/mode"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/Mode"
/loadpoints/{id}/phases/{phases}:
post:
operationId: setLoadpointPhases
summary: Update allowed phases
description: "Updates the allowed phases of the loadpoint. Selects the desired phase mode for chargers with automatic phase switching. For manual phase switching chargers (via cable or Lasttrennschalter) this value tells evcc the actual phases."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#phases
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/phases"
responses:
200:
$ref: "#/components/responses/NumberResult"
400:
description: "Invalid phases-value. You have most likely entered the value 0 for a wallbox that cannot switch phases automatically."
/loadpoints/{id}/plan:
get:
operationId: getLoadpointPlan
summary: Get charging plan
description: "Returns the current charging plan for this loadpoint."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
allOf:
- type: object
properties:
planId:
$ref: "#/components/schemas/Id"
precondition:
$ref: "#/components/schemas/Precondition"
- $ref: "#/components/schemas/PlanRates"
/loadpoints/{id}/plan/energy:
delete:
operationId: deleteLoadpointEnergyPlan
summary: Delete energy-based charging plan
description: "Delete charging plan. Only available when a vehicle without SoC is connected."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
responses:
200:
$ref: "#/components/responses/EmptyResult"
/loadpoints/{id}/plan/energy/{energy}/{timestamp}:
post:
operationId: setLoadpointEnergyPlan
summary: Set energy-based charging plan
description: "Create charging plan with fixed time and energy target. Only available when a vehicle without SoC is connected."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/energy"
- $ref: "#/components/parameters/timestamp"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/StaticEnergyPlan"
/loadpoints/{id}/plan/repeating/preview/{soc}/{weekdays}/{hourMinuteTime}/{timezone}:
get:
operationId: previewLoadpointRepeatingPlan
summary: Repeating plan preview
description: "Simulate repeating charging plan and return the result. Does not alter the actual charging plan."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/soc"
- $ref: "#/components/parameters/weekdays"
- $ref: "#/components/parameters/hourMinuteTime"
- $ref: "#/components/parameters/timezone"
responses:
200:
$ref: "#/components/responses/PlanRatesResult"
/loadpoints/{id}/plan/static/preview/soc/{soc}/{timestamp}:
get:
operationId: previewLoadpointSocPlan
summary: Simulate soc-based charging plan
description: "Simulate charging plan based on SoC goal. Does not alter the actual charging plan."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/soc"
- $ref: "#/components/parameters/timestamp"
responses:
200:
$ref: "#/components/responses/PlanRatesResult"
/loadpoints/{id}/plan/static/preview/energy/{energy}/{timestamp}:
get:
operationId: previewLoadpointEnergyPlan
summary: Simulate energy-based charging plan
description: "Simulate charging plan based on energy goal. Does not alter the actual charging plan."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/energy"
- $ref: "#/components/parameters/timestamp"
responses:
200:
$ref: "#/components/responses/PlanRatesResult"
/loadpoints/{id}/priority/{priority}:
post:
operationId: setLoadpointPriority
summary: Set priority
description: "Set loadpoint priority."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#priority
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- name: priority
in: path
description: Higher number means higher priority.
required: true
example: 2
schema:
type: integer
minimum: 0
responses:
200:
$ref: "#/components/responses/IntegerResult"
/loadpoints/{id}/smartcostlimit:
delete:
operationId: deleteLoadpointSmartCostLimit
summary: Delete smart charging cost limit
description: "Delete cost or emission limit for fast-charging with grid energy."
externalDocs:
url: https://docs.evcc.io/en/docs/features/dynamic-prices
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
responses:
200:
$ref: "#/components/responses/NullResult"
/loadpoints/{id}/smartcostlimit/{cost}:
post:
operationId: setLoadpointSmartCostLimit
summary: Set smart charging cost limit
description: "Set cost or emission limit for fast-charging with grid energy."
externalDocs:
url: https://docs.evcc.io/en/docs/features/dynamic-prices
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/costLimit"
responses:
200:
$ref: "#/components/responses/NumberResult"
/loadpoints/{id}/vehicle:
delete:
operationId: removeLoadpointVehicle
summary: Remove vehicle
description: "Remove vehicle from loadpoint. Connected vehicle is treated as guest vehicle."
externalDocs:
url: https://docs.evcc.io/en/docs/features/vehicle
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
responses:
200:
$ref: "#/components/responses/EmptyResult"
patch:
operationId: startLoadpointVehicleDetection
summary: Start vehicle detection
description: "Starts the automatic vehicle detection process."
externalDocs:
url: https://docs.evcc.io/en/docs/features/vehicle
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
responses:
200:
$ref: "#/components/responses/EmptyResult"
/loadpoints/{id}/vehicle/{name}:
post:
operationId: assignLoadpointVehicle
summary: Assign vehicle
description: "Assigns vehicle to loadpoint."
externalDocs:
url: https://docs.evcc.io/en/docs/features/vehicle
tags:
- loadpoints
parameters:
- $ref: "#/components/parameters/id"
- $ref: "#/components/parameters/vehicleName"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
type: object
properties:
vehicle:
$ref: "#/components/schemas/VehicleTitle"
/prioritysoc/{soc}:
post:
operationId: setPrioritySoc
summary: Set battery priority SoC
description: "Set battery priority SoC."
externalDocs:
url: https://docs.evcc.io/en/docs/features/battery
tags:
- battery
parameters:
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/NumberResult"
/residualpower/{power}:
post:
operationId: setResidualPower
summary: Set grid residual power
description: "Set grid connection operating point."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/site#residualpower
tags:
- battery
parameters:
- $ref: "#/components/parameters/power"
responses:
200:
$ref: "#/components/responses/NumberResult"
/session/{id}:
parameters:
- $ref: "#/components/parameters/id"
put:
operationId: updateSession
summary: Update vehicle of charging session
description: "Update vehicle of charging session."
externalDocs:
url: https://docs.evcc.io/en/docs/features/sessions
tags:
- sessions
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
vehicle:
$ref: "#/components/schemas/VehicleName"
loadpoint:
$ref: "#/components/schemas/LoadpointName"
responses:
200:
description: Success
delete:
operationId: deleteSession
summary: Delete charging session
description: "Delete charging session."
externalDocs:
url: https://docs.evcc.io/en/docs/features/sessions
tags:
- sessions
responses:
200:
$ref: "#/components/responses/NullResult"
/sessions:
get:
operationId: getSessions
summary: Charging sessions
description: "Returns a list of charging sessions."
externalDocs:
url: https://docs.evcc.io/en/docs/features/sessions
tags:
- sessions
parameters:
- name: format
in: query
description: Response format (default json)
schema:
type: string
enum:
- csv
- name: lang
in: query
description: Language (defaults to accept header)
schema:
type: string
example: de
- name: month
in: query
description: Month filter
schema:
type: integer
example: 2
minimum: 1
maximum: 12
- name: year
in: query
description: Year filter
schema:
type: integer
example: 2025
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/ChargingSessions"
text/csv:
schema:
description: Download csv-file
type: string
format: binary
/settings/telemetry:
get:
operationId: getTelemetryStatus
summary: Telemetry status
description: "Returns the current telemetry status."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/telemetry
tags:
- system
responses:
200:
$ref: "#/components/responses/BooleanResult"
/settings/telemetry/{enable}:
post:
operationId: setTelemetryStatus
summary: Enable/disable telemetry
description: "Enable or disable telemetry. Note: Telemetry requires sponsorship."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/telemetry
tags:
- system
parameters:
- $ref: "#/components/parameters/enable"
responses:
200:
$ref: "#/components/responses/BooleanResult"
400:
description: Sponsorship required
/smartcostlimit:
delete:
operationId: removeGlobalSmartCostLimit
summary: Remove smart charging cost limit for all loadpoints.
description: "Convenience method to remove limit for all loadpoints at once. Value is applied to each individual loadpoint."
tags:
- general
responses:
200:
$ref: "#/components/responses/NullResult"
/smartcostlimit/{cost}:
post:
operationId: setGlobalSmartCostLimit
summary: Set smart charging cost limit for all loadpoints
description: "Convenience method to set smart charging cost limit for all loadpoints at once. Value is applied to each individual loadpoint."
tags:
- general
parameters:
- $ref: "#/components/parameters/costLimit"
responses:
200:
$ref: "#/components/responses/NumberResult"
/state:
get:
operationId: getState
summary: System state
description: "Returns the complete state of the system. This structure is used by the UI. It can be filtered by JQ to only return a subset of the data."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/state
tags:
- general
parameters:
- name: jq
in: query
description: Filter the state with JQ
schema:
type: string
examples:
all:
value: .
summary: complete state
firstLoadpoint:
value: .loadpoints[0]
summary: only first loadpoint
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/State"
/system/log:
get:
operationId: getSystemLogs
summary: Logs
description: "Returns the latest log lines."
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/log
security:
- cookieAuth: []
tags:
- system
parameters:
- $ref: "#/components/parameters/logAreas"
- $ref: "#/components/parameters/logLevel"
- name: count
in: query
description: Number of log lines to return
example: 100
schema:
type: integer
- name: format
in: query
description: File type
schema:
type: string
enum:
- txt
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
type: array
items:
type: string
text/plain:
schema:
description: Download txt-file
type: string
format: binary
401:
$ref: "#/components/responses/Unauthorized"
/system/log/areas:
get:
operationId: getLogAreas
summary: List of all log areas
description: "Returns a list of all log areas (e.g. `lp-1`, `site`, `db`)."
security:
- cookieAuth: []
tags:
- system
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/LogAreas"
401:
$ref: "#/components/responses/Unauthorized"
/system/shutdown:
post:
operationId: shutdownSystem
summary: Shutdown evcc
description: "Shut down instance. There is no reboot command. We expect the underlying system (docker, systemd, etc.) to restart the evcc instance once it's terminated."
security:
- cookieAuth: []
tags:
- system
responses:
204:
$ref: "#/components/responses/BlankResponse"
401:
$ref: "#/components/responses/Unauthorized"
/tariff/{type}:
get:
operationId: getTariffInfo
summary: Tariff information
description: "Returns the prices or emission values for the upcoming hours"
externalDocs:
url: https://docs.evcc.io/en/docs/devices/tariffs
tags:
- tariffs
parameters:
- name: type
in: path
description: Tariff type
required: true
schema:
type: string
enum:
- grid
- feedin
- co2
- planner
- solar
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
type: object
properties:
rates:
$ref: "#/components/schemas/Rates"
404:
description: Tariff not defined
/vehicles/{name}/limitsoc/{soc}:
post:
operationId: setVehicleSocLimit
summary: Set SoC limit
description: "Charging will stop when this SoC is reached."
externalDocs:
url: https://docs.evcc.io/en/docs/features/limits
tags:
- vehicles
parameters:
- $ref: "#/components/parameters/vehicleName"
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/SocResult"
/vehicles/{name}/minsoc/{soc}:
post:
operationId: setVehicleMinSoc
summary: Set minimum SoC
description: "Vehicle will be fast-charged until this SoC is reached."
externalDocs:
url: https://docs.evcc.io/en/docs/features/limits
tags:
- vehicles
parameters:
- $ref: "#/components/parameters/vehicleName"
- $ref: "#/components/parameters/soc"
responses:
200:
$ref: "#/components/responses/SocResult"
/vehicles/{name}/plan/repeating:
post:
operationId: updateVehicleRepeatingPlans
summary: Update repeating plans
description: "Updates the repeating charging plan."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- vehicles
parameters:
- $ref: "#/components/parameters/vehicleName"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/RepeatingPlans"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/RepeatingPlans"
/vehicles/{name}/plan/soc:
delete:
operationId: deleteVehicleSocPlan
summary: Delete a SoC-based charging plan
description: "Delete the charging plan"
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- vehicles
parameters:
- $ref: "#/components/parameters/vehicleName"
responses:
200:
$ref: "#/components/responses/EmptyResult"
/vehicles/{name}/plan/soc/{soc}/{timestamp}:
post:
operationId: setVehicleSocPlan
summary: Set a SoC-based charging plan
description: "Create charging plan with fixed time and SoC target."
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans
tags:
- vehicles
parameters:
- $ref: "#/components/parameters/vehicleName"
- $ref: "#/components/parameters/soc"
- $ref: "#/components/parameters/timestamp"
- in: query
name: precondition
schema:
$ref: "#/components/schemas/Precondition"
responses:
200:
description: Success
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/StaticSocPlan"
components:
schemas:
BatteryMode:
description: Battery mode
type: string
example: normal
enum:
- unknown
- normal
- hold
- charge
ChangePassword:
type: object
properties:
current:
$ref: "#/components/schemas/Password"
new:
$ref: "#/components/schemas/Password"
ChargingSessions:
description: Charging sessions
type: array
items:
type: object
properties:
id:
$ref: "#/components/schemas/Id"
created:
$ref: "#/components/schemas/Timestamp"
finished:
$ref: "#/components/schemas/Timestamp"
loadpoint:
$ref: "#/components/schemas/LoadpointName"
vehicle:
$ref: "#/components/schemas/VehicleName"
odometer:
type: number
nullable: true
description: Vehicle odometer reading in kilometers
meterStart:
type: number
nullable: true
description: Meter reading at start of charging session
meterStop:
type: number
nullable: true
description: Meter reading at end of charging session
chargedEnergy:
type: number
description: Charged energy in kWh
chargeDuration:
type: number
description: Duration of active charging
solarPercentage:
type: number
description: Solar percentage of the session
price:
type: number
description: Total price of the session
pricePerKWh:
type: number
description: Average price per kWh
co2PerKWh:
type: number
description: Average CO₂ emissions per kWh
Current:
description: Electric current in A
type: number
example: 16
minimum: 0
Energy:
description: Energy in kWh
type: number
example: 25.5
minimum: 0
Delay:
description: "Duration in seconds."
type: integer
example: 60
HourMinuteTime:
description: Time in `HH:MM` format
type: string
pattern: "[0-1][0-9]:[0-5][0-9]"
format: HH:MM
example: 12:30
IANATimeZone:
description: Timezone in IANA format
externalDocs:
url: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
type: string
example: Europe/Berlin
Id:
description: Loadpoint index starting at 1.
type: integer
example: 1
minimum: 1
LoadpointName:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/loadpoints#title
type: string
example: Garage
LogArea:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/log#levels
type: string
LogAreas:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/log#levels
type: array
example:
- lp-1
- site
- db
items:
$ref: "#/components/schemas/LogArea"
LogLevel:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/log#log
type: string
example: DEBUG
enum:
- FATAL
- ERROR
- WARN
- INFO
- DEBUG
- TRACE
Mode:
description: "Charging mode."
type: string
enum:
- "off"
- "now"
- "minpv"
- "pv"
Password:
description: Admin password
type: string
Phases:
description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase)"
type: string
example: "3"
enum:
- "0"
- "1"
- "3"
PlanRates:
type: object
properties:
duration:
description: Duration in s
type: integer
minimum: 0
plan:
$ref: "#/components/schemas/Rates"
planTime:
$ref: "#/components/schemas/Timestamp"
power:
$ref: "#/components/schemas/Power"
Power:
description: Power in W
type: number
minimum: 0
example: 2500
Precondition:
description: "Late charging duration in seconds."
type: integer
example: 3600
minimum: 0
Rate:
type: object
description: A charging interval
properties:
start:
description: Start
$ref: "#/components/schemas/Timestamp"
end:
description: End
$ref: "#/components/schemas/Timestamp"
value:
description: Cost
type: number
minimum: 0
Rates:
type: array
items:
$ref: "#/components/schemas/Rate"
RepeatingPlan:
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans#repeating-plans
type: object
properties:
active:
description: "Set plan active."
type: boolean
precondition:
$ref: "#/components/schemas/Precondition"
soc:
$ref: "#/components/schemas/Soc"
time:
$ref: "#/components/schemas/HourMinuteTime"
tz:
$ref: "#/components/schemas/IANATimeZone"
weekdays:
$ref: "#/components/schemas/Weekdays"
RepeatingPlans:
type: object
properties:
plans:
type: array
items:
$ref: "#/components/schemas/RepeatingPlan"
Soc:
description: SOC in %
type: number
example: 60
minimum: 0
maximum: 100
State:
description: "The actual state structure is not documented yet. Most values should be self-explanatory. Note: While the overall structure is quite stable, details may change between releases."
type: object
StaticEnergyPlan:
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans#energy-amount-plan
type: object
properties:
energy:
$ref: "#/components/schemas/Energy"
precondition:
$ref: "#/components/schemas/Precondition"
time:
$ref: "#/components/schemas/Timestamp"
StaticSocPlan:
externalDocs:
url: https://docs.evcc.io/en/docs/features/plans#create-charging-plan
type: object
properties:
precondition:
$ref: "#/components/schemas/Precondition"
soc:
$ref: "#/components/schemas/Soc"
time:
$ref: "#/components/schemas/Timestamp"
Timestamp:
description: Timestamp in RFC3339 format
type: string
format: date-time
example: 2025-07-19T12:30:00.000Z
VehicleName:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/vehicles#name
type: string
minLength: 1
pattern: "[a-zA-Z0-9_.:-]+"
example: vehicle_1
VehicleTitle:
externalDocs:
url: https://docs.evcc.io/en/docs/reference/configuration/vehicles#title
type: string
example: blauer e-Golf
Weekdays:
description: "The Weekdays"
type: array
uniqueItems: true
example:
- 1
- 3
- 4
items:
description: "0: Sunday, 1: Monday, 2: Tuesday, 3: Wednesday, 4: Thursday, 5: Friday, 6: Saturday"
type: integer
minimum: 0
maximum: 6
parameters:
id:
name: id
description: Loadpoint index starting at 1
in: path
required: true
schema:
$ref: "#/components/schemas/Id"
phases:
name: phases
description: "Number of phases. (0: auto, 1: 1-phase, 3: 3-phase)"
in: path
required: true
schema:
$ref: "#/components/schemas/Phases"
weekdays:
name: weekdays
description: "The Weekdays"
in: path
required: true
schema:
$ref: "#/components/schemas/Weekdays"
hourMinuteTime:
name: hourMinuteTime
description: Time in `HOURS:MINUTES` format
in: path
required: true
schema:
$ref: "#/components/schemas/HourMinuteTime"
timezone:
name: timezone
in: path
required: true
schema:
$ref: "#/components/schemas/IANATimeZone"
logAreas:
name: areas
description: "Comma-separated list of log areas"
in: query
explode: true
schema:
$ref: "#/components/schemas/LogAreas"
logLevel:
name: level
description: Log level
in: query
required: true
schema:
$ref: "#/components/schemas/LogLevel"
delay:
name: delay
description: "Duration in seconds."
in: path
required: true
schema:
$ref: "#/components/schemas/Delay"
mode:
name: mode
in: path
required: true
schema:
$ref: "#/components/schemas/Mode"
soc:
name: soc
description: SOC in %
in: path
required: true
schema:
$ref: "#/components/schemas/Soc"
timestamp:
name: timestamp
description: Timestamp in RFC3339 format
in: path
required: true
schema:
$ref: "#/components/schemas/Timestamp"
vehicleName:
name: name
description: Vehicle name
in: path
required: true
schema:
$ref: "#/components/schemas/VehicleName"
current:
name: current
description: Electric current in A
in: path
required: true
schema:
$ref: "#/components/schemas/Current"
power:
name: power
description: Power in W
in: path
required: true
schema:
$ref: "#/components/schemas/Power"
energy:
name: energy
description: Energy in kWh
in: path
required: true
schema:
$ref: "#/components/schemas/Energy"
threshold:
name: threshold
description: Power in W
in: path
required: true
schema:
$ref: "#/components/schemas/Power"
batteryMode:
name: batteryMode
in: path
required: true
schema:
$ref: "#/components/schemas/BatteryMode"
costLimit:
name: cost
description: Cost limit in configured currency (default EUR) or CO2 limit in g/kWh
example: 0.25
in: path
required: true
schema:
type: number
enable:
name: enable
description: "Charging mode."
in: path
required: true
schema:
type: string
enum:
- "true"
- "false"
- "1"
- "0"
responses:
NanoSecondsResult:
description: Success - Number result - Unit is **nanoseconds**
content:
application/json:
schema:
type: object
properties:
result:
type: integer
NumberResult:
description: Success - Number result
content:
application/json:
schema:
type: object
properties:
result:
type: number
IntegerResult:
description: Success - Integer result
content:
application/json:
schema:
type: object
properties:
result:
type: integer
SocResult:
description: Success - Soc result
content:
application/json:
schema:
type: object
properties:
result:
type: object
properties:
soc:
$ref: "#/components/schemas/Soc"
PlanRatesResult:
description: Success - PlanRates result
content:
application/json:
schema:
type: object
properties:
result:
$ref: "#/components/schemas/PlanRates"
BooleanResult:
description: Success - Boolean result
content:
application/json:
schema:
type: object
properties:
result:
type: boolean
NullResult:
description: Success - Null result
content:
application/json:
schema:
type: object
properties:
result:
description: Value is always null
type: object
nullable: true
BlankResponse:
description: Success - Blank response
EmptyResult:
description: Success - Empty result
content:
application/json:
schema:
type: object
Unauthorized:
description: Unauthorized - Login and try again
content:
text/plain:
schema:
type: string
enum:
- Unauthorized
BatteryModeResult:
description: Battery mode
content:
application/json:
schema:
type: object
properties:
result:
type: integer
description: "Battery mode. 0: unknown, 1: normal, 2: hold, 3: charge"
minimum: 0
maximum: 3
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: auth