Your First Studio Profile
A studio profile is a synthetic energy-consumption curve made up of a base template (a typical household shape) plus optional layers (EV charger, heat pump, solar, …). In this tutorial you will create a profile from scratch and apply a household template.
Create a profile
Start by creating an empty studio profile. You can optionally pass a name and a year (defaults to the current year). The lat / lon fields default to central Netherlands.
- Name
name- Type
- string
- Description
Display name for the profile. Auto-generated when omitted.
- Name
year- Type
- number
- Description
Reference year (2020–2050). Affects solar irradiance data when you add a solar layer later.
Create a studio profile
curl -X POST https://api.enhub.nl/v1/studio-profiles \
-H "x-api-key: {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"name": "My first profile",
"year": 2025
}'
Response
{
"id": "cm...",
"name": "My first profile",
"baseProfileType": null,
"totalKwh": null,
"peakKw": null,
"layerCount": null,
"hasSolarLayer": false,
"year": 2025,
"createdAt": "2025-06-01T10:00:00.000Z",
"updatedAt": "2025-06-01T10:00:00.000Z"
}
Browse templates
Before setting a base you'll want to see which household templates are available. The presets endpoint returns both templates (base consumption shapes) and layer presets (EV, heat pump, etc.).
There are four built-in templates:
| Template ID | Description | Default kWh |
|---|---|---|
alleenstaand | Single person | 2 500 |
stel | Couple without children | 3 200 |
thuiswerkers-kinderen | 2 remote workers, 3 children | 4 500 |
groot-gezin | Large family | 5 500 |
List presets
curl https://api.enhub.nl/v1/studio-profiles/presets \
-H "x-api-key: {your-api-key}"
Response (truncated)
{
"templates": [
{
"id": "alleenstaand",
"name": "Alleenstaand",
"annualKwh": 2500
},
{
"id": "stel",
"name": "Stel zonder kinderen",
"annualKwh": 3200
}
],
"layerPresets": [
{ "id": "ev", "name": "Elektrische auto" },
{ "id": "warmtepomp", "name": "Warmtepomp" },
{ "id": "zwembad", "name": "Zwembadpomp" },
{ "id": "custom", "name": "Aangepast" },
{ "id": "solar", "name": "Zonnepanelen" }
]
}
Set the base template
Apply one of the templates to your profile with POST /v1/studio-profiles/{id}/base. The templateId is required. You can optionally override annualKwh to rescale the template shape to a different total consumption.
- Name
templateId- Type
- string
- required
- Description
One of
alleenstaand,stel,thuiswerkers-kinderen, orgroot-gezin.
- Name
annualKwh- Type
- number
- Description
Override the default annual consumption. The hourly shape is preserved but rescaled. Range: 100–100 000.
Set base template
curl -X POST https://api.enhub.nl/v1/studio-profiles/{id}/base \
-H "x-api-key: {your-api-key}" \
-H "Content-Type: application/json" \
-d '{
"templateId": "stel",
"annualKwh": 3500
}'
Response
{
"id": "cm...",
"name": "My first profile",
"baseProfileType": "template",
"baseProfileName": "Stel zonder kinderen",
"totalKwh": 3500,
"peakKw": 1.82,
"layerCount": 0,
"hasSolarLayer": false,
"year": 2025,
"createdAt": "2025-06-01T10:00:00.000Z",
"updatedAt": "2025-06-01T10:01:00.000Z"
}
Inspect the profile
Use GET /v1/studio-profiles/{id} to fetch the full profile detail, including baseline metadata and layers (empty for now). The chart endpoint lets you visualise the data at different zoom levels.
Chart views
| View | Description | index range |
|---|---|---|
year | Full-year overview | — |
month | Single month | 0–11 |
week | Single week | 0–51 |
production | Solar production only | — |
export | Grid export only | — |
Fetch profile detail
curl https://api.enhub.nl/v1/studio-profiles/{id} \
-H "x-api-key: {your-api-key}"
Fetch year chart
curl "https://api.enhub.nl/v1/studio-profiles/{id}/chart?view=year" \
-H "x-api-key: {your-api-key}"
Next steps
You now have a profile with a base consumption curve. Continue to the next tutorial to add layers on top of this base.
Add layers (EV, heat pump, custom)