Get details about a user's electric vehicle
Get the electric vehicle related to a specific user under a specific organization.
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
The ID of the specified electric vehicle
Query Parameters
If true, includes soft-deleted
Response
OK
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 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.
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 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 Deprecated — use GET /org/{org_id}/notifications/status or GET /org/{org_id}/notifications/information?device_id=…. True when the device has at least one unread information notification for the owner.
Deprecated — use GET /org/{org_id}/notifications/actions?device_id=… instead. Pending actions the partner can take on this device. Each item carries a code discriminator that determines its remaining fields — different action codes can use different resolution mechanisms (URL flow, webhook, in-band command, ...). Empty when nothing is pending.
Action requiring the partner to reauthenticate the user against an upstream provider.
Once more action codes are introduced, expose them as sibling classes (e.g.
FooAction with code: Literal["foo"]) and combine them into a discriminated
union (Annotated[ReauthenticateAction | FooAction, Field(discriminator="code")])
so OpenAPI consumers can branch on code to select the right shape.
- ReauthenticateProjection
- InformationActionProjection
- SocInputRequestedProjection
