Skip to contents

A respective forecast of wind and solar power net generation (MW) per area and each market time unit of the following/current day. The elements of the result list are representing each related forecast time range.

Usage

gen_wind_solar_forecasts(
  eic = NULL,
  period_start = lubridate::ymd(Sys.Date(), tz = "CET") - lubridate::days(x = 1L),
  period_end = lubridate::ymd(Sys.Date(), tz = "CET"),
  tidy_output = TRUE,
  security_token = Sys.getenv("ENTSOE_PAT")
)

Arguments

eic

Energy Identification Code of the control area, bidding zone or country

period_start

POSIXct or YYYY-MM-DD HH:MM:SS format One year range limit applies

period_end

POSIXct or YYYY-MM-DD HH:MM:SS format One year range limit applies

tidy_output

Defaults to TRUE. If TRUE, then flatten nested tables.

security_token

Security token for ENTSO-E transparency platform

Examples

df_list <- entsoeapi::gen_wind_solar_forecasts(
  eic          = "10YFR-RTE------C",
  period_start = lubridate::ymd(x = "2020-02-01", tz = "CET"),
  period_end   = lubridate::ymd(x = "2020-03-01", tz = "CET"),
  tidy_output  = TRUE
)
#> 
#> ── API call ────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A69&processType=A01&in_Domain=10YFR-RTE------C&periodStart=202001312300&periodEnd=202002292300&securityToken=<...>
#> <- HTTP/2 200 
#> <- date: Thu, 05 Mar 2026 16:12:48 GMT
#> <- content-type: text/xml
#> <- content-disposition: inline; filename="Generation Forecasts Wind Solar_202001312300-202002292300.xml"
#> <- x-content-type-options: nosniff
#> <- x-xss-protection: 0
#> <- vary: accept-encoding
#> <- content-encoding: gzip
#> <- strict-transport-security: max-age=15724800; includeSubDomains
#> <- 
#>  response has arrived
#> 
#> ── API call ────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A69&processType=A40&in_Domain=10YFR-RTE------C&periodStart=202001312300&periodEnd=202002292300&securityToken=<...>
#> <- HTTP/2 200 
#> <- date: Thu, 05 Mar 2026 16:12:49 GMT
#> <- content-type: text/xml
#> <- content-disposition: inline; filename="Generation Forecasts Wind Solar_202001312300-202002292300.xml"
#> <- x-content-type-options: nosniff
#> <- x-xss-protection: 0
#> <- vary: accept-encoding
#> <- content-encoding: gzip
#> <- strict-transport-security: max-age=15724800; includeSubDomains
#> <- 
#>  response has arrived
#> 
#> ── API call ────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A69&processType=A18&in_Domain=10YFR-RTE------C&periodStart=202001312300&periodEnd=202002292300&securityToken=<...>
#> <- HTTP/2 200 
#> <- date: Thu, 05 Mar 2026 16:12:50 GMT
#> <- content-type: text/xml
#> <- content-disposition: inline; filename="Generation Forecasts Wind Solar_202001312300-202002292300.xml"
#> <- x-content-type-options: nosniff
#> <- x-xss-protection: 0
#> <- vary: accept-encoding
#> <- content-encoding: gzip
#> <- strict-transport-security: max-age=15724800; includeSubDomains
#> <- 
#>  response has arrived
str(df_list$`Day-ahead`)
#> tibble [1,392 × 23] (S3: tbl_df/tbl/data.frame)
#>  $ ts_in_bidding_zone_domain_mrid : chr [1:1392] "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" ...
#>  $ ts_in_bidding_zone_domain_name : chr [1:1392] "France" "France" "France" "France" ...
#>  $ type                           : chr [1:1392] "A69" "A69" "A69" "A69" ...
#>  $ type_def                       : chr [1:1392] "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" ...
#>  $ process_type                   : chr [1:1392] "A01" "A01" "A01" "A01" ...
#>  $ process_type_def               : chr [1:1392] "Day ahead" "Day ahead" "Day ahead" "Day ahead" ...
#>  $ ts_object_aggregation          : chr [1:1392] "A08" "A08" "A08" "A08" ...
#>  $ ts_object_aggregation_def      : chr [1:1392] "Resource type" "Resource type" "Resource type" "Resource type" ...
#>  $ ts_business_type               : chr [1:1392] "A94" "A94" "A94" "A94" ...
#>  $ ts_business_type_def           : chr [1:1392] "Solar generation" "Solar generation" "Solar generation" "Solar generation" ...
#>  $ ts_mkt_psr_type                : chr [1:1392] "B16" "B16" "B16" "B16" ...
#>  $ ts_mkt_psr_type_def            : chr [1:1392] "Solar unspecified" "Solar unspecified" "Solar unspecified" "Solar unspecified" ...
#>  $ created_date_time              : POSIXct[1:1392], format: "2026-03-05 16:12:48" "2026-03-05 16:12:48" "2026-03-05 16:12:48" "2026-03-05 16:12:48" ...
#>  $ revision_number                : num [1:1392] 3 3 3 3 3 3 3 3 3 3 ...
#>  $ time_period_time_interval_start: POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" ...
#>  $ time_period_time_interval_end  : POSIXct[1:1392], format: "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" ...
#>  $ ts_resolution                  : chr [1:1392] "PT60M" "PT60M" "PT60M" "PT60M" ...
#>  $ ts_time_interval_start         : POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" ...
#>  $ ts_time_interval_end           : POSIXct[1:1392], format: "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" ...
#>  $ ts_mrid                        : num [1:1392] 1 1 1 1 1 1 1 1 1 1 ...
#>  $ ts_point_dt_start              : POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-02-01 00:00:00" "2020-02-01 01:00:00" "2020-02-01 02:00:00" ...
#>  $ ts_point_quantity              : num [1:1392] 0 0 0 0 0 ...
#>  $ ts_quantity_measure_unit_name  : chr [1:1392] "MAW" "MAW" "MAW" "MAW" ...
str(df_list$`Intraday`)
#> tibble [986 × 23] (S3: tbl_df/tbl/data.frame)
#>  $ ts_in_bidding_zone_domain_mrid : chr [1:986] "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" ...
#>  $ ts_in_bidding_zone_domain_name : chr [1:986] "France" "France" "France" "France" ...
#>  $ type                           : chr [1:986] "A69" "A69" "A69" "A69" ...
#>  $ type_def                       : chr [1:986] "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" ...
#>  $ process_type                   : chr [1:986] "A40" "A40" "A40" "A40" ...
#>  $ process_type_def               : chr [1:986] "Intraday process" "Intraday process" "Intraday process" "Intraday process" ...
#>  $ ts_object_aggregation          : chr [1:986] "A08" "A08" "A08" "A08" ...
#>  $ ts_object_aggregation_def      : chr [1:986] "Resource type" "Resource type" "Resource type" "Resource type" ...
#>  $ ts_business_type               : chr [1:986] "A94" "A94" "A94" "A94" ...
#>  $ ts_business_type_def           : chr [1:986] "Solar generation" "Solar generation" "Solar generation" "Solar generation" ...
#>  $ ts_mkt_psr_type                : chr [1:986] "B16" "B16" "B16" "B16" ...
#>  $ ts_mkt_psr_type_def            : chr [1:986] "Solar unspecified" "Solar unspecified" "Solar unspecified" "Solar unspecified" ...
#>  $ created_date_time              : POSIXct[1:986], format: "2026-03-05 16:12:49" "2026-03-05 16:12:49" "2026-03-05 16:12:49" "2026-03-05 16:12:49" ...
#>  $ revision_number                : num [1:986] 3 3 3 3 3 3 3 3 3 3 ...
#>  $ time_period_time_interval_start: POSIXct[1:986], format: "2020-02-01 06:00:00" "2020-02-01 06:00:00" "2020-02-01 06:00:00" "2020-02-01 06:00:00" ...
#>  $ time_period_time_interval_end  : POSIXct[1:986], format: "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" ...
#>  $ ts_resolution                  : chr [1:986] "PT60M" "PT60M" "PT60M" "PT60M" ...
#>  $ ts_time_interval_start         : POSIXct[1:986], format: "2020-02-01 06:00:00" "2020-02-01 06:00:00" "2020-02-01 06:00:00" "2020-02-01 06:00:00" ...
#>  $ ts_time_interval_end           : POSIXct[1:986], format: "2020-02-01 23:00:00" "2020-02-01 23:00:00" "2020-02-01 23:00:00" "2020-02-01 23:00:00" ...
#>  $ ts_mrid                        : num [1:986] 1 1 1 1 1 1 1 1 1 1 ...
#>  $ ts_point_dt_start              : POSIXct[1:986], format: "2020-02-01 06:00:00" "2020-02-01 07:00:00" "2020-02-01 08:00:00" "2020-02-01 09:00:00" ...
#>  $ ts_point_quantity              : num [1:986] 0 6.74 414.99 1145.83 1751.88 ...
#>  $ ts_quantity_measure_unit_name  : chr [1:986] "MAW" "MAW" "MAW" "MAW" ...
str(df_list$`Current`)
#> tibble [1,392 × 23] (S3: tbl_df/tbl/data.frame)
#>  $ ts_in_bidding_zone_domain_mrid : chr [1:1392] "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" "10YFR-RTE------C" ...
#>  $ ts_in_bidding_zone_domain_name : chr [1:1392] "France" "France" "France" "France" ...
#>  $ type                           : chr [1:1392] "A69" "A69" "A69" "A69" ...
#>  $ type_def                       : chr [1:1392] "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" "Wind and solar forecast" ...
#>  $ process_type                   : chr [1:1392] "A18" "A18" "A18" "A18" ...
#>  $ process_type_def               : chr [1:1392] "Intraday total" "Intraday total" "Intraday total" "Intraday total" ...
#>  $ ts_object_aggregation          : chr [1:1392] "A08" "A08" "A08" "A08" ...
#>  $ ts_object_aggregation_def      : chr [1:1392] "Resource type" "Resource type" "Resource type" "Resource type" ...
#>  $ ts_business_type               : chr [1:1392] "A94" "A94" "A94" "A94" ...
#>  $ ts_business_type_def           : chr [1:1392] "Solar generation" "Solar generation" "Solar generation" "Solar generation" ...
#>  $ ts_mkt_psr_type                : chr [1:1392] "B16" "B16" "B16" "B16" ...
#>  $ ts_mkt_psr_type_def            : chr [1:1392] "Solar unspecified" "Solar unspecified" "Solar unspecified" "Solar unspecified" ...
#>  $ created_date_time              : POSIXct[1:1392], format: "2026-03-05 16:12:50" "2026-03-05 16:12:50" "2026-03-05 16:12:50" "2026-03-05 16:12:50" ...
#>  $ revision_number                : num [1:1392] 3 3 3 3 3 3 3 3 3 3 ...
#>  $ time_period_time_interval_start: POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" ...
#>  $ time_period_time_interval_end  : POSIXct[1:1392], format: "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" ...
#>  $ ts_resolution                  : chr [1:1392] "PT60M" "PT60M" "PT60M" "PT60M" ...
#>  $ ts_time_interval_start         : POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" "2020-01-31 23:00:00" ...
#>  $ ts_time_interval_end           : POSIXct[1:1392], format: "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" "2020-02-29 23:00:00" ...
#>  $ ts_mrid                        : num [1:1392] 1 1 1 1 1 1 1 1 1 1 ...
#>  $ ts_point_dt_start              : POSIXct[1:1392], format: "2020-01-31 23:00:00" "2020-02-01 00:00:00" "2020-02-01 01:00:00" "2020-02-01 02:00:00" ...
#>  $ ts_point_quantity              : num [1:1392] 0 0 0 0 0 ...
#>  $ ts_quantity_measure_unit_name  : chr [1:1392] "MAW" "MAW" "MAW" "MAW" ...