> ## 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 details about a user's specific heat pump

> Get the heat pump related to a specific user under a specific organization.



## OpenAPI

````yaml https://app.podero.com/api/partners/v2.0/openapi.json get /api/partners/v2.0/org/{org_id}/users/{user_id}/heat-pumps/{heat_pump_id}
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}/heat-pumps/{heat_pump_id}:
    get:
      tags:
        - User Heat Pumps
      summary: Get details about a user's specific heat pump
      description: >-
        Get the heat pump related to a specific user under a specific
        organization.
      operationId: >-
        integrations_api_api_v2_organizations_users_heat_pumps_router_retrieve_heat_pump
      parameters:
        - in: path
          name: org_id
          schema:
            description: The organization ID of the user's organization
            format: uuid
            title: Org Id
            type: string
          required: true
          description: The organization ID of the user's organization
        - in: path
          name: user_id
          schema:
            description: The user ID of the user whom the heat pump belongs to
            format: uuid
            title: User Id
            type: string
          required: true
          description: The user ID of the user whom the heat pump belongs to
        - in: path
          name: heat_pump_id
          schema:
            description: The ID of the specified heat pump
            format: uuid
            title: Heat Pump Id
            type: string
          required: true
          description: The ID of the specified heat pump
        - in: query
          name: include_deleted
          schema:
            default: false
            description: If true, includes soft-deleted
            title: Include Deleted
            type: boolean
          required: false
          description: If true, includes soft-deleted
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeatPumpDetailOutput'
      security:
        - OAuth2: []
components:
  schemas:
    HeatPumpDetailOutput:
      properties:
        connection_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Connection Status
          type: string
        monitoring_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Monitoring Status
          type: string
        steering_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Steering Status
          type: string
        device_model:
          anyOf:
            - $ref: '#/components/schemas/DeviceModelOutput'
            - type: 'null'
        owner:
          $ref: '#/components/schemas/OwnerOutput'
        price_zone:
          allOf:
            - $ref: '#/components/schemas/PriceZone'
          default: AT
        id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Id
        created_at:
          format: date-time
          title: Created At
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
        deleted_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When set, the device is considered deleted.
          title: Soft-deleted at
        lifecycle_state:
          default: authenticated
          maxLength: 20
          title: Lifecycle state
          type: string
        lifecycle_error:
          anyOf:
            - type: string
            - type: 'null'
          description: Error metadata when lifecycle_state is 'error'.
          title: Lifecycle error details
        pause_power_until:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Pause power consumption until
        is_pause_power_active:
          default: false
          title: Pause function currently active
          type: boolean
        external_device_id:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          default: ''
          title: External Device Id
        is_authenticated:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Authenticated
        is_smart_optimization_active:
          default: false
          title: Smart Optimization Active
          type: boolean
        optimization_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Optimization Score
        current_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Mode
        comment:
          anyOf:
            - maxLength: 300
              type: string
            - type: 'null'
          title: Comment
        current_state_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Current State Last Updated At
        last_monitoring_executed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Monitoring Executed At
        is_inverter_forced_mode_enabled:
          default: false
          title: Is Inverter Forced Mode Enabled
          type: boolean
        is_inverter_forced_mode_active:
          default: false
          title: Is Inverter Forced Mode Active
          type: boolean
        inverter_forced_mode_since:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          default: '0001-01-01T00:00:00Z'
          title: Inverter Forced Mode Since
        is_trading_enabled:
          default: false
          title: Is Trading Enabled
          type: boolean
        actual_steering_state:
          default: unknown
          maxLength: 20
          title: Actual Steering State
          type: string
        indoor_target_temperature_offset:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Desired offset of indoor temperature in °C
        dhw_standard_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Desired temperature of domestic hot water in °C
        is_hot_water_heating_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Hot Water Heating Enabled
        is_space_heating_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Space Heating Enabled
        is_pool_heating_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Pool Heating Enabled
        is_space_cooling_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Space Cooling Enabled
        heating_policy_name:
          anyOf:
            - maxLength: 100
              type: string
            - type: 'null'
          title: Name of the Heating Policy
        maximum_temperature_limit:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: 'Heating Policy: Maximum indoor temperature'
        minimum_temperature_limit:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: 'Heating Policy: Minimum indoor temperature'
        minimum_dhw_temperature_limit:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: 'Heating Policy: Minimum domestic hot water temperature'
        is_heating_policy_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Heating Policy active
        heating_policy_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Timestamp of last update of heating policy
        away_mode_start:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Away Mode Start
        away_mode_end:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Away Mode End
        is_away_mode_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: true
          title: Is Away Mode Enabled
        away_mode_minimum_temperature_limit:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Away Mode Minimum Temperature Limit
        away_mode_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Away Mode Last Updated At
        min_solar_power_w:
          default: 2000
          title: Min Solar Power W
          type: integer
        operational_mode:
          anyOf:
            - maxLength: 100
              type: string
            - type: 'null'
          title: Operational Mode
        current_power_consumption_w:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current Power Consumption W
        inlet_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Inlet Temperature
        outlet_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Outlet Temperature
        dhw_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Dhw Temperature
        outdoor_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Outdoor Temperature
        indoor_actual_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Indoor Actual Temperature
        indoor_target_temperature:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Indoor Target Temperature
        consumption_last_day_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Consumption Last Day Kwh
        consumption_last_week_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Consumption Last Week Kwh
        consumption_last_month_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Consumption Last Month Kwh
        consumption_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Timestamp of last consumption update
        optimization_level:
          anyOf:
            - maxLength: 10
              type: string
            - type: 'null'
          default: Mid
          title: Optimization Level
        needs_gateway:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Needs Gateway
        temperature_delta_override_for_slight_change:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Overrides the temperature change amount when steering the device for
            slight changes. For example, from MIN to LOW. Disclaimer: this
            depends on the integration support for overrides.
          title: Slight temperature change override
        temperature_delta_override_for_significant_change:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Overrides the temperature change amount when steering the device for
            significant changes. For example, from MIN to MAX. Disclaimer: this
            depends on the integration support for overrides.
          title: Significant temperature delta override
        embeddable_url:
          anyOf:
            - type: string
            - type: 'null'
          description: URL to embeddable onboarding form
          title: Embeddable Url
        authorization_url:
          anyOf:
            - type: string
            - type: 'null'
          description: Base URL for authorizing with the Podero server
          title: Authorization Url
        action_needed:
          default: false
          description: >-
            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. The `actions` field on the detail response carries the
            specifics.
          title: Action Needed
          type: boolean
        has_notification:
          default: false
          description: >-
            True when the device has at least one unread information
            notification for the owner.
          title: Has Notification
          type: boolean
        actions:
          description: >-
            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.
          items:
            discriminator:
              mapping:
                information:
                  $ref: '#/components/schemas/InformationActionProjection'
                reauthenticate:
                  $ref: '#/components/schemas/ReauthenticateProjection'
              propertyName: code
            oneOf:
              - $ref: '#/components/schemas/ReauthenticateProjection'
              - $ref: '#/components/schemas/InformationActionProjection'
          title: Actions
          type: array
      required:
        - connection_status
        - monitoring_status
        - steering_status
        - device_model
        - owner
        - created_at
        - updated_at
      title: HeatPumpDetailOutput
      type: object
    DeviceModelOutput:
      properties:
        device_type:
          $ref: '#/components/schemas/DeviceTypeOutput'
        cloud_service_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Cloud Service Instructions
        cloud_service_signup_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Cloud Service Signup Link
        manufacturer:
          maxLength: 255
          title: Manufacturer or brand
          type: string
        model:
          maxLength: 255
          title: Model
          type: string
        year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Model year (if available)
        cloud_service:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Cloud Service
      required:
        - device_type
        - manufacturer
        - model
      title: DeviceModelOutput
      type: object
    OwnerOutput:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Email
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
        external_id:
          anyOf:
            - type: string
            - type: 'null'
          title: External Id
      required:
        - id
      title: OwnerOutput
      type: object
    PriceZone:
      enum:
        - AT
        - AT_HOURLY
        - BE
        - CH
        - EE
        - DE_LU
        - HU
        - 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
      title: PriceZone
      type: string
    InformationActionProjection:
      description: Action showing a message to the user.
      properties:
        code:
          const: information
          description: Discriminator identifying this as an information action.
          title: Code
          type: string
        resolution_link:
          $ref: '#/components/schemas/cue_handler__api_schemas__ResolutionLinkSchema'
          description: Link the caller follows to resolve the message showing.
        metadata:
          additionalProperties: true
          description: >-
            Action-specific metadata. Carries the user-visible message under
            `message`.
          title: Metadata
          type: object
        sent_at:
          description: >-
            Timestamp when the latest message in this action was sent to the
            user.
          format: date-time
          title: Sent At
          type: string
      required:
        - code
        - resolution_link
        - sent_at
      title: InformationActionProjection
      type: object
    ReauthenticateProjection:
      description: >-
        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.
      properties:
        code:
          const: reauthenticate
          description: Discriminator identifying this as a reauthentication action.
          title: Code
          type: string
        resolution_link:
          $ref: >-
            #/components/schemas/cue_handler__actions__reauth__ResolutionLinkSchema
          description: Link the caller follows to start the reauthentication.
      required:
        - code
        - resolution_link
      title: ReauthenticateProjection
      type: object
    DeviceTypeOutput:
      properties:
        short_name:
          maxLength: 255
          title: String identifier of device type
          type: string
        long_name:
          maxLength: 255
          title: Description of device type
          type: string
      required:
        - short_name
        - long_name
      title: DeviceTypeOutput
      type: object
    cue_handler__api_schemas__ResolutionLinkSchema:
      properties:
        url:
          description: >-
            Relative URL the caller hits to resolve the action. Already includes
            the action's ID and a signed `secret` query parameter; the secret is
            bound to the member and expires 1 hour after issuance.
          title: Url
          type: string
        required_parameters:
          description: >-
            Names of the body fields the caller must supply when resolving the
            action.
          items:
            type: string
          title: Required Parameters
          type: array
      required:
        - url
        - required_parameters
      title: ResolutionLinkSchema
      type: object
    cue_handler__actions__reauth__ResolutionLinkSchema:
      properties:
        url:
          description: >-
            Relative URL the caller hits to start the action. Already includes
            the action's ID and a signed `secret` query parameter; the secret is
            bound to the member and expires 1 hour after issuance.
          title: Url
          type: string
        required_parameters:
          description: >-
            Names of the body fields the caller must supply when starting the
            action.
          items:
            type: string
          title: Required Parameters
          type: array
      required:
        - url
        - required_parameters
      title: ResolutionLinkSchema
      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: {}

````