> ## Documentation Index
> Fetch the complete documentation index at: https://developers.podero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get one finished charging session as aligned 15-minute series

> Battery level, wallbox power, price and one series per authenticated inverter on one 15-minute grid, over a server-determined window that pads the charge on each side. Finished sessions only: a session that is still running returns 404.



## OpenAPI

````yaml https://app.podero.com/api/partners/v2.0/openapi.json get /api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/{session_id}/timeline
openapi: 3.1.0
info:
  title: Podero Partner API
  version: '2.0'
  description: >-
    This API provides a unified interaction point for Podero's partner
    companies.


    The goal of this API is to give partners easily integratable endpoints that
    don't require extensive software

    development. For this reason, the endpoints focus around user and device
    management, setting of preferences

    and high level device controls.


    While direct control of devices is implemented for special use cases such as
    pause power, we abstract away low level

    direct device steering so developers and partners can focus on delivering
    maximum value to end users.
  termsOfService: https://www.podero.com/terms-and-conditions
servers: []
security: []
paths:
  /api/partners/v2.0/org/{org_id}/users/{user_id}/charging-sessions/{session_id}/timeline:
    get:
      tags:
        - User Charging Sessions
      summary: Get one finished charging session as aligned 15-minute series
      description: >-
        Battery level, wallbox power, price and one series per authenticated
        inverter on one 15-minute grid, over a server-determined window that
        pads the charge on each side. Finished sessions only: a session that is
        still running returns 404.
      operationId: >-
        integrations_api_api_v2_organizations_users_charging_sessions_router_get_charging_session_timeline_endpoint
      parameters:
        - in: path
          name: org_id
          schema:
            description: The organization ID
            format: uuid
            title: Org Id
            type: string
          required: true
          description: The organization ID
        - in: path
          name: user_id
          schema:
            description: The user ID
            format: uuid
            title: User Id
            type: string
          required: true
          description: The user ID
        - in: path
          name: session_id
          schema:
            description: Opaque prefix-typed session id (`ev_{uuid}` or `wb_{int}`)
            title: Session Id
            type: string
          required: true
          description: Opaque prefix-typed session id (`ev_{uuid}` or `wb_{int}`)
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargingSessionTimeline'
      security:
        - OAuth2: []
components:
  schemas:
    ChargingSessionTimeline:
      description: >-
        Aligned 15-minute series for one finished charge, on a server-determined
        window.


        Every list has exactly the length of ``buckets``, and index ``i`` of
        each list

        describes the bucket that starts at ``buckets[i]``. A bucket with no
        source row is

        ``null``: the value is unknown, not zero, and the chart must draw it as
        a gap. A

        series the charge has no source for is null throughout — an EV-only
        charge has no

        ``charge_power_w``, and a wallbox-only charge has no
        ``battery_level_pct``.
      properties:
        session_id:
          title: Session Id
          type: string
        window_start:
          description: >-
            Start of the served window, on a 15-minute boundary. The window pads
            the charge on each side by the larger of one hour and the distance
            to the nearest EV datapoint outside the charge, so the state before
            plug-in and after unplug is visible.
          format: date-time
          title: Window Start
          type: string
        window_end:
          format: date-time
          title: Window End
          type: string
        session_start:
          description: >-
            Start of the charge itself: plug-in, widened by any wallbox episode
            of the same charge.
          format: date-time
          title: Session Start
          type: string
        session_end:
          format: date-time
          title: Session End
          type: string
        bucket_minutes:
          default: 15
          description: Width of every bucket. The cadence of the collected prices.
          title: Bucket Minutes
          type: integer
        buckets:
          description: Bucket start times, oldest first. The shared x axis.
          items:
            format: date-time
            type: string
          title: Buckets
          type: array
        battery_level_pct:
          description: Mean state of charge in the bucket, in percent.
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Battery Level Pct
          type: array
        ev_is_charging:
          description: >-
            True when the car reported charging at any point in the bucket. A
            pause shorter than the bucket is invisible here.
          items:
            anyOf:
              - type: boolean
              - type: 'null'
          title: Ev Is Charging
          type: array
        ev_is_plugged_in:
          items:
            anyOf:
              - type: boolean
              - type: 'null'
          title: Ev Is Plugged In
          type: array
        wallbox_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          description: The wallbox that steered the charge, or `null` when none did.
          title: Wallbox Id
        charge_power_w:
          description: Mean total power the wallbox delivered in the bucket.
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Charge Power W
          type: array
        wb_is_charging:
          items:
            anyOf:
              - type: boolean
              - type: 'null'
          title: Wb Is Charging
          type: array
        price_eur_per_kwh:
          description: >-
            The organization's trading price over day-ahead, in EUR per kWh, for
            the step that covers the bucket. `null` where the prices do not
            cover the bucket.
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Price Eur Per Kwh
          type: array
        inverters:
          description: >-
            One entry per authenticated inverter of the owner, any count. Empty
            when they have none.
          items:
            $ref: '#/components/schemas/InverterTimelineSeries'
          title: Inverters
          type: array
        soc_anchors:
          description: >-
            The two state-of-charge readings of a wallbox-steered charge. Empty
            for a charge with an EV of its own, whose `battery_level_pct`
            trajectory says the same thing better.
          items:
            $ref: '#/components/schemas/SocAnchor'
          title: Soc Anchors
          type: array
      required:
        - session_id
        - window_start
        - window_end
        - session_start
        - session_end
        - buckets
        - battery_level_pct
        - ev_is_charging
        - ev_is_plugged_in
        - wallbox_id
        - charge_power_w
        - wb_is_charging
        - price_eur_per_kwh
        - inverters
        - soc_anchors
      title: ChargingSessionTimeline
      type: object
    InverterTimelineSeries:
      description: >-
        One authenticated inverter's power channels on the shared grid.


        One series per inverter, never a sum: inverters report at their own
        cadence, so

        adding them fabricates a curve that no device measured.
      properties:
        inverter_id:
          format: uuid
          title: Inverter Id
          type: string
        label:
          description: Manufacturer and model of the inverter, for the chart legend.
          title: Label
          type: string
        solar_production_w:
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Solar Production W
          type: array
        export_power_to_grid_w:
          description: >-
            Signed grid flow: positive exports to the grid, negative imports
            from it.
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Export Power To Grid W
          type: array
        battery_charge_discharge_power_w:
          description: >-
            Signed home-battery power: positive discharges the battery, negative
            charges it.
          items:
            anyOf:
              - type: number
              - type: 'null'
          title: Battery Charge Discharge Power W
          type: array
      required:
        - inverter_id
        - label
        - solar_production_w
        - export_power_to_grid_w
        - battery_charge_discharge_power_w
      title: InverterTimelineSeries
      type: object
    SocAnchor:
      description: >-
        One state-of-charge reading of a wallbox-steered charge.


        A wallbox has no view of the car's battery, so such a charge has two
        readings

        instead of a trajectory: the state the user entered and the state at
        finalize.
      properties:
        at:
          format: date-time
          title: At
          type: string
        pct:
          title: Pct
          type: number
        source:
          description: >-
            Which end of the charge the reading describes: `"start"` or `"end"`.
            Which tier of the energy ladder produced it stays on the session
            item's `soc_source`.
          title: Source
          type: string
      required:
        - at
        - pct
        - source
      title: SocAnchor
      type: object
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}
        clientCredentials:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}

````