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

# Update Energy Profile

Saves one or more answers about the energy setup at a location. Send only the fields you want to change: fields you leave out keep their value, and `null` clears a field. The first request creates the profile, so you can save each answer as soon as the user gives it.

Prices are in euro per kWh including VAT: a number from 0 to 5 with at most 5 decimals.

<ParamField path="site" type="string" required>
  The UUID of the location.
</ParamField>

<ParamField body="has_solar_panels" type="boolean">
  Whether the location has solar panels.
</ParamField>

<ParamField body="has_home_battery" type="boolean">
  Whether the location has a home battery.
</ParamField>

<ParamField body="contract_type" type="string">
  The electricity contract. One of `fixed`, `variable` or `dynamic`.
</ParamField>

<ParamField body="supplier" type="string">
  The energy supplier. Maximum 100 characters.
</ParamField>

<ParamField body="price_per_kwh" type="number">
  The price per kWh. For a fixed or variable contract, the normal or single rate.
</ParamField>

<ParamField body="off_peak_price_per_kwh" type="number">
  The off-peak (low) rate per kWh.
</ParamField>

<ParamField body="feed_in_price_per_kwh" type="number">
  What the user gets per kWh fed back to the grid.
</ParamField>

<ParamField body="dynamic_markup_per_kwh" type="number">
  For a dynamic contract, the supplier's markup per kWh on the day-ahead price.
</ParamField>

<ParamField body="completed" type="boolean">
  Send `true` when the user has finished answering. The first time, this sets `completed_at` to the current time; later requests keep that first time. `false` is not accepted.
</ParamField>

## Response

Returns `200` with the whole profile, also when the request created it.

<ResponseField name="data" type="object">
  The energy profile of the location.

  <Expandable title="data">
    <ResponseField name="has_solar_panels" type="boolean">
      Whether the location has solar panels, or `null` when not answered.
    </ResponseField>

    <ResponseField name="has_home_battery" type="boolean">
      Whether the location has a home battery, or `null` when not answered.
    </ResponseField>

    <ResponseField name="contract_type" type="string">
      The electricity contract. One of `fixed`, `variable` or `dynamic`, or `null` when not answered.
    </ResponseField>

    <ResponseField name="supplier" type="string">
      The energy supplier, or `null`.
    </ResponseField>

    <ResponseField name="price_per_kwh" type="number">
      The price per kWh in euro including VAT, or `null`.
    </ResponseField>

    <ResponseField name="off_peak_price_per_kwh" type="number">
      The off-peak (low) rate per kWh in euro including VAT, or `null`.
    </ResponseField>

    <ResponseField name="feed_in_price_per_kwh" type="number">
      What the user gets per kWh fed back to the grid, in euro including VAT, or `null`.
    </ResponseField>

    <ResponseField name="dynamic_markup_per_kwh" type="number">
      The supplier's markup per kWh on the day-ahead price, in euro including VAT, or `null`.
    </ResponseField>

    <ResponseField name="completed_at" type="string">
      When the user first finished answering, as an ISO 8601 UTC timestamp (for example `2026-10-08T07:12:34Z`), or `null`.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      When an answer last changed, as an ISO 8601 UTC timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.