Studio CSV Upload & Export

Instead of a household template, you can use real smart-meter data as the base of your studio profile. The API accepts P1, HomeWizard, and Fluvius quarter-hour CSV files and resamples them to an 8 760-hour curve.


Supported CSV formats

The upload endpoint auto-detects the CSV format. The following types are supported:

FormatDescriptionResolution
P1Dutch smart-meter export (P1e)Hourly
HomeWizardHomeWizard Energy app exportVariable
FluviusBelgian Fluvius quarter-hour data15-min

The API resamples all formats to 8 760 hourly values (one per hour of the year). If the CSV contains export (feed-in) data, that is parsed separately and shows up in the export chart view.


Upload a CSV as base

Upload a CSV file with POST /v1/studio-profiles/{id}/base/upload. The request must use multipart/form-data with a single file field.

This replaces any existing base template on the profile. All layers are preserved — only the base consumption curve changes.

Upload CSV

curl -X POST https://api.enhub.nl/v1/studio-profiles/{id}/base/upload \
  -H "x-api-key: {your-api-key}" \
  -F "file=@meter-data-2024.csv"

Response

{
  "id": "cm...",
  "name": "My first profile",
  "baseProfileType": "upload",
  "baseProfileName": "meter-data-2024.csv",
  "totalKwh": 4120,
  "peakKw": 3.45,
  "totalExportKwh": 1250,
  "peakExportKw": 2.80,
  "layerCount": 1,
  "hasSolarLayer": true,
  "year": 2025
}
CSV upload profile — P1 meter data with year chart showing real-world consumption patterns

Add layers to uploaded data

Layers work the same way whether the base comes from a template or a CSV upload. This is especially useful for scenario modelling — e.g. "what happens to my real consumption when I add an EV charger?"

Simply add layers as shown in the Studio Layers tutorial. The API stacks them on top of the uploaded base curve.

Add heat pump to uploaded profile

curl -X POST https://api.enhub.nl/v1/studio-profiles/{id}/layers \
  -H "x-api-key: {your-api-key}" \
  -H "Content-Type: application/json" \
  -d '{
    "presetId": "warmtepomp",
    "maxKw": 5
  }'

Export to CSV

Export the final combined profile (base + all layers) as a CSV file with 8 760 rows — one kWh value per hour of the year. The file downloads directly.

This is useful for feeding the profile into external tools, pricing engines, or the Enhub scan API.

Export CSV

curl -o profile-export.csv \
  "https://api.enhub.nl/v1/studio-profiles/{id}/export-csv" \
  -H "x-api-key: {your-api-key}"

Output (first lines)

hour,kwh
0,0.42
1,0.38
2,0.35
3,0.33
...

Duplicate a profile

Duplicate an existing profile to create a variant without starting from scratch. The base, all layers, and the computed curve are copied. You can optionally give the duplicate a new name.

  • Name
    name
    Type
    string
    Description

    Name for the duplicated profile. Defaults to the original name with a suffix.

Duplicate profile

curl -X POST https://api.enhub.nl/v1/studio-profiles/{id}/duplicate \
  -H "x-api-key: {your-api-key}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Scenario B — with heat pump"
  }'

Response

{
  "id": "cm...(new id)",
  "name": "Scenario B — with heat pump",
  "baseProfileType": "upload",
  "totalKwh": 6320,
  "peakKw": 8.45,
  "layerCount": 2,
  "hasSolarLayer": true,
  "year": 2025
}

Was this page helpful?