Get forecast for a site
Returns a PV power forecast for a saved site.
Uses the site's stored location, strings, and configuration. Timestamps are in the
site's local timezone (see timezone in the response). The response covers past_days
days of archived forecast data followed by forecast_days days of forecast. Note that archived forecast data
differs from historical data, which tends to be more accurate.
path Parameters
site_idquery Parameters
forecast_daysForecast horizon as days beyond today. 0 = today only, 1 = today + tomorrow, etc. If omitted, returns the maximum allowed by your plan. Hard-capped at 7 (8 days incl. today); further clamped to your plan's limit.
past_daysPast days to include before today. Defaults to 0. Hard-capped at 30; further clamped to your plan's limit.
includeField groups to include in the response. Combine freely (?include=weather&include=irradiance). default = pv_power. Omit default to receive only the requested groups (e.g. weather data only). all returns every available field. strings adds a separate top-level strings array with per-string PV power (long format) — values is unaffected. variability adds a pv_power_min/pv_power_max band (~next 48h) to values and to each strings row; requires a plan with variability access and is never part of all.
Headers
AuthorizationBearer token. Format: Bearer YOUR_API_KEY
Get forecast for a site › Responses
Successful Response
site_idtimezoneIANA timezone of the timestamps, e.g. 'Europe/Berlin'.
includedGroups included in this response.
ISO 8601 timestamp of when this forecast was computed. Forecasts are recomputed at fixed slots per day (see your plan's forecast.updates_per_day); repeat requests within the same slot return this same cached result.
Per-string PV power and tilted irradiance (gti/gti_shaded) in long format (one row per timestep per string). Present only when include=strings (or all). Each row carries string_index (positional, always present) and, for saved sites, string_id (stable id — use it to correlate with a string's measurements). Loads directly into a DataFrame; pivot on string_index for wide format. values stays unaffected — total pv_power there is the sum across strings. Tilted irradiance lives here (not in values) because it is orientation-dependent and therefore per-string.
Get forecast without a saved site
Returns a PV power forecast without requiring a saved site.
Provide the location (latitude + longitude) and optionally strings and config inline. Useful for one-off queries or integrations where managing sites is not needed. Computed fresh on every call (no server-side caching) and counts against your monthly forecast quota.
query Parameters
forecast_daysForecast horizon as days beyond today. 0 = today only, 1 = today + tomorrow, etc. If omitted, returns the maximum allowed by your plan. Hard-capped at 7 (8 days incl. today); further clamped to your plan's limit.
past_daysPast days to include before today. Defaults to 0. Hard-capped at 30; further clamped to your plan's limit.
includeField groups to include. See the site endpoint for details.
Headers
AuthorizationBearer token. Format: Bearer YOUR_API_KEY
Get forecast without a saved site › Request Body
latitudeLatitude of the site in decimal degrees (WGS84).
longitudeLongitude of the site in decimal degrees (WGS84).
PV string definitions. Defaults to a single string (10 kWp, 180° orientation, 30° tilt) if omitted.
Site configuration overrides. Omitted fields fall back to current defaults.
Get forecast without a saved site › Responses
Successful Response
site_idtimezoneIANA timezone of the timestamps, e.g. 'Europe/Berlin'.
includedGroups included in this response.
ISO 8601 timestamp of when this forecast was computed. Forecasts are recomputed at fixed slots per day (see your plan's forecast.updates_per_day); repeat requests within the same slot return this same cached result.
Per-string PV power and tilted irradiance (gti/gti_shaded) in long format (one row per timestep per string). Present only when include=strings (or all). Each row carries string_index (positional, always present) and, for saved sites, string_id (stable id — use it to correlate with a string's measurements). Loads directly into a DataFrame; pivot on string_index for wide format. values stays unaffected — total pv_power there is the sum across strings. Tilted irradiance lives here (not in values) because it is orientation-dependent and therefore per-string.