Get a user's electric vehicles
List all electric vehicles of a specific user, at a fixed query cost regardless of fleet size.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The organization ID of the user's organization
The user ID of the user whom the electric vehicle belongs to
Query Parameters
If true, includes soft-deleted
Response
One object per electric vehicle of the user.
ok, warning, error, unknown ok, warning, error, unknown ok, warning, error, unknown The device's console health tone, and the only verdict a client should render: action_required when a partner-resolvable action is pending, else the worst of connection and monitoring, with not_steered for a healthy device nobody optimizes. Do not re-derive it from connection_status/monitoring_status/steering_status — those three are cue-blind and would report a device asking for reauthentication as healthy. The status filter on GET /org/{org_id}/devices and the tone counts on …/devices/summary grade the three statuses only, so a device with a pending action reads action_required here while being counted and filtered under its status tone.
good, warning, critical, not_steered The device's pending cues per Support category.
The device's service-health verdict: unhealthy when any component reads no, else healthy when any reads yes, else unknown. As of the last hourly sweep for heat pumps and electric vehicles; unknown until a new device is first swept; null when soft-deleted.
unhealthy, unknown, healthy AT, AT_HOURLY, BE, CH, EE, DE_LU, HR, HU, IE_SEM, IT_CNOR, IT_CSUD, IT_NORD, IT_PUN, IT_SARD, IT_SICI, IT_SUD, PT, RO, SE_1, SE_2, SE_3, SE_4, UK What is happening with the vehicle now, as one value from a closed set. Render it as it is: the server decides it from the plug, the charge, the open session, its plan, whether HEMS drives the charge, the boost and pending owner actions, so a client must not re-derive it from other fields. The first value whose condition holds is served:
action_required: the owner must act before steering can work — the same condition astone = action_required.unknown: no reading says whether the cable is in.unplugged: the cable is not in.plugged_in: the cable is in and no charging session is open, or no other value applies.away_from_home: the open session is not at the home location, so it is not steered.smart_charging_off: the vehicle's current mode steers neither on prices nor on solar.boosting: a boost is requested, running or stopping (boost_state).solar_charging: HEMS drives the charge from surplus and the charge is observed. A solar top-up of a car already at its target reads this too.target_reached: the car is at its charge target and nothing in the session will charge it further. An owner who allows charging past the target lets a solar top-up or the car's own charge continue, so then this value is served only while neither can happen.waiting_for_solar: solar is steered, no charge is observed, and HEMS holds the charge or no price plan decides it.waiting_for_prices: the plan waits for the day-ahead prices it needs.planning: the session is open and its plan is not made yet.charging_planned: the plan charges later.smart_charging: the plan charges now and the charge is observed.starting: the plan charges now and no charge is observed yet.charging: the charge is observed and no plan decides it. The plan values (waiting_for_pricestostarting) are served while a price plan decides the charge. A live plan is served whatever the current mode says, because a running engine keeps the mode it started with until the vehicle is unplugged;planningis served only while the mode steers on prices. Switching steering off showssmart_charging_offat once. With both price and solar steering, a plan that still decides the charge wins over waiting for solar, except between two plan segments while HEMS holds the charge. A charge is observed when the vehicle reports it, or the wallbox its session is routed through does.nullfor a soft-deleted vehicle, which has no live state. The value is computed when it is read and is never stored. A client must map a value it does not know to the raw plug state.
action_required, unknown, unplugged, plugged_in, away_from_home, smart_charging_off, boosting, target_reached, solar_charging, waiting_for_solar, waiting_for_prices, planning, charging_planned, smart_charging, starting, charging Whether the platform is doing what it should for this vehicle, component by component, and where the problem starts when it is not. Every cell is a reading of state the evaluators already recorded, so a cell nothing has observed reads not_measured rather than a guess.
Deprecated — use GET /org/{org_id}/notifications/status for per-device-type counts, or GET /org/{org_id}/notifications/actions?device_id=… for the specifics. True when at least one action is pending against this device and the partner must take that action before the device can resume normal operation.
Observed steering: active, degraded, inactive, blocked, disabled, or unevaluated. Unknown means no observation.
20When set, the device is considered deleted.
255300Detected OEM-app charge cap (percent). NULL = unknown / no cap detected.
Event time of the last accepted canonical plug-state write, from any source (Smartcar telemetry, OCPP wire). The arbitration watermark: a claim whose evidence time is not newer than this is stale and does not write. NULL = no claim yet, so anything wins.
Timestamp the API signalled a boost cancel (owned by the API, not the workflow). Drives BoostState.STOPPING until the workflow ends the boost and clears boost_active_at. Cleared by the API on an un-cancel (re-tap).
Battery level at latest plug-in event
Last steering-block recovery probe attempt. NULL = never probed.
1616200URL to embeddable onboarding form
Base URL for authorizing with the Podero server
Pure boost lifecycle, shared by EVs and wallboxes (SC-154). Describes only the boost, not whether the device is charging — normal optimizer-driven charging is AVAILABLE (boostable), not ONGOING.
available, requested, unavailable, ongoing, stopping 