Get Energy Profile
curl --request GET \
--url https://api.plugchoice.com/v3/sites/{site}/energy-profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plugchoice.com/v3/sites/{site}/energy-profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plugchoice.com/v3/sites/{site}/energy-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plugchoice.com/v3/sites/{site}/energy-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plugchoice.com/v3/sites/{site}/energy-profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plugchoice.com/v3/sites/{site}/energy-profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plugchoice.com/v3/sites/{site}/energy-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"has_solar_panels": true,
"has_home_battery": true,
"contract_type": "<string>",
"supplier": "<string>",
"price_per_kwh": 123,
"off_peak_price_per_kwh": 123,
"feed_in_price_per_kwh": 123,
"dynamic_markup_per_kwh": 123,
"completed_at": "<string>",
"updated_at": "<string>"
}
}Energy Profile
Get Energy Profile
GET
/
v3
/
sites
/
{site}
/
energy-profile
Get Energy Profile
curl --request GET \
--url https://api.plugchoice.com/v3/sites/{site}/energy-profile \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.plugchoice.com/v3/sites/{site}/energy-profile"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.plugchoice.com/v3/sites/{site}/energy-profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plugchoice.com/v3/sites/{site}/energy-profile",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.plugchoice.com/v3/sites/{site}/energy-profile"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.plugchoice.com/v3/sites/{site}/energy-profile")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plugchoice.com/v3/sites/{site}/energy-profile")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"has_solar_panels": true,
"has_home_battery": true,
"contract_type": "<string>",
"supplier": "<string>",
"price_per_kwh": 123,
"off_peak_price_per_kwh": 123,
"feed_in_price_per_kwh": 123,
"dynamic_markup_per_kwh": 123,
"completed_at": "<string>",
"updated_at": "<string>"
}
}Returns what the user told you about the energy setup at a location: solar panels, a home battery, the electricity contract and its prices. A location without any answers returns every field as
null.
string
required
The UUID of the location.
Response
object
The energy profile of the location.
Show data
Show data
boolean
Whether the location has solar panels, or
null when not answered.boolean
Whether the location has a home battery, or
null when not answered.string
The electricity contract. One of
fixed, variable or dynamic, or null when not answered.string
The energy supplier as the user entered or picked it, or
null.number
The price per kWh in euro including VAT, or
null. For a fixed or variable contract this is the normal or single rate.number
The off-peak (low) rate per kWh in euro including VAT, or
null.number
What the user gets per kWh fed back to the grid, in euro including VAT, or
null.number
For a dynamic contract, the supplier’s markup per kWh on the day-ahead price, in euro including VAT, or
null.string
When the user first finished answering, as an ISO 8601 UTC timestamp (for example
2026-10-08T07:12:34Z), or null.string
When an answer last changed, as an ISO 8601 UTC timestamp, or
null when there are no answers yet.⌘I