pvnodepvnode
  • pvnode.com
  • Studio
  • Pricing
  • Deutsch
  • English
  • API Reference
Product
  • Studio
  • API Documentation
  • API Reference
  • Pricing
Resources
  • Quickstart
  • Integrations
Legal
  • Imprint
  • Privacy
  • Terms
  • Licenses
pvnodepvnode

© 2026 pvnode. All rights reserved.

linkedin
IntroductionQuickstartMigration from V1
Sites & Data
    Sites & StringsForecastsHistorical DataData UploadCalibration & Monitoring
Guides
Enterprise
Integrations
(Archive) V1 API
powered by Zudoku
English

Migration from V1

The V2 API changes the core principle: instead of configuring every request via URL parameters, you create sites and query them through their site_id.

The V1 API remains unchanged and still available. You do not have to migrate immediately — this guide helps you switch when you want to take advantage of V2. The V1 API is expected to be shut down on 2026-12-31.

The new core principle

V1V2
ConfigurationPer request in the URLStored once as a site
Query/v1/forecast?latitude=…&slope=…/v2/forecast/{site_id}
StringsOne or two strings via parametersMultiple strings per site
Elevation/timezone/terrainComputed per request as neededDetermined & stored automatically

For use cases without persistent sites (e.g. one-off calculations) there are the inline endpoints, which come closest to the old URL logic.

Endpoint mapping

V1V2
GET /v1/forecast?…GET /v2/forecast/{site_id} or POST /v2/forecast/inline
GET /v1/history?…GET /v2/historical/{site_id} or POST /v2/historical/inline
GET /v1/recent?…Included in GET /v2/historical/{site_id}
(no site management)POST/GET/PATCH/DELETE /v2/sites

In V2, /recent and /history are merged into a single endpoint.

Field names & response format

V2 uses clear field names and local timestamps throughout.

V1V2
dtm (UTC)timestamp (local ISO-8601 time, see timezone)
spec_watts (W/kWp)dropped — V2 returns pv_power directly in W
pv_wattspv_power (W)
GHI / DHI / BNIghi / dhi / bni
temp, weather_codetemp, weather_code (named unchanged)

Key differences:

  • Timestamps are local, not UTC. The IANA timezone is in the timezone field.
  • gti / gti_shaded are per string and live in the strings block (tilted irradiance depends on the orientation) — see Forecasts.
  • spec_power / spec_watts is no longer returned; use pv_power.

required_data → include groups

Instead of a free column list (required_data=pv_watts,temp), in V2 you select field groups via the repeatable include parameter:

TerminalV1
GET /v1/forecast?required_data=pv_watts,temp,GHI
TerminalV2
GET /v2/forecast/{site_id}?include=weather&include=irradiance

Available groups: default, weather, irradiance, clearsky, strings, variability, all. Details under Forecasts.

Migration steps

  1. Keep using your API key — the same key works for V1 and V2.
  2. Create a site for each existing parameter combination (POST /v2/sites).
  3. Switch queries to GET /v2/forecast/{site_id} or GET /v2/historical/{site_id}.
  4. Account for the new field names and local timestamps in your code.
  5. Replace required_data with the matching include groups.

You'll find the complete endpoint and field reference in the API Reference.

Migrating integrations

If you use an integration such as Solectrus, EVCC or ioBroker, you have to wait for an update of the respective integration before you can switch to V2. We'll track the development progress here.

Last modified on June 9, 2026
QuickstartSites & Data
On this page
  • The new core principle
  • Endpoint mapping
  • Field names & response format
  • required_data → include groups
  • Migration steps
  • Migrating integrations