Skip to contents

Elastic demands for scheduled activation of standard aFRR/mFRR product.

Usage

elastic_demands(
  eic = NULL,
  process_type = NULL,
  period_start = ymd(Sys.Date() - days(x = 7L), tz = "CET"),
  period_end = ymd(Sys.Date(), tz = "CET"),
  tidy_output = TRUE,
  security_token = Sys.getenv("ENTSOE_PAT")
)

Arguments

eic

Energy Identification Code of the scheduling area

process_type

type of frequency restoration reserve "A47" mFRR "A51" aFRR

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. flatten nested tables

security_token

Security token for ENTSO-E transparency platform

Value

A tibble::tibble() with the queried data.

Examples

df <- entsoeapi::elastic_demands(
  eic = "10YCZ-CEPS-----N",
  process_type = "A47",
  period_start = lubridate::ymd(x = "2024-01-01", tz = "CET"),
  period_end = lubridate::ymd(x = "2024-08-01", tz = "CET"),
  tidy_output = TRUE
)
#> 
#> ── API call ────────────────────────────────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&securityToken=<...>
#> <- HTTP/1.1 400 Bad Request
#> <- Date: Tue, 20 Oct 2026 10:21:54 GMT
#> <- Content-Type: text/xml
#> <- Content-Length: 905
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="acknowledgement.xml"
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> ℹ *** The request has been rephrased. ***
#> 
#> ── API calls (6, max. 4 in parallel) ───────────────────────────────────────────────────────────────────────────────────
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=0&securityToken=<...>
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=100&securityToken=<...>
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=200&securityToken=<...>
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=300&securityToken=<...>
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=400&securityToken=<...>
#> → https://web-api.tp.entsoe.eu/api?documentType=A37&processType=A47&businessType=B75&Acquiring_domain=10YCZ-CEPS-----N&periodStart=202312312300&periodEnd=202407312200&offset=500&securityToken=<...>
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:21:57 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202405310445-202406270400.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:21:57 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202403150500-202403300815.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:21:58 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202406270400-202407311045.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:22:00 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202401090930-202403141000.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:22:00 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202403300815-202404300500.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> <- HTTP/1.1 200 OK
#> <- Date: Tue, 20 Oct 2026 10:22:00 GMT
#> <- Content-Type: text/xml
#> <- Transfer-Encoding: chunked
#> <- Connection: keep-alive
#> <- Content-Disposition: inline; filename="Elastic Demands [IF mFRR 3.4, aFRR 3.5]_202405021230-202405310445.xml"
#> <- Content-Encoding: gzip
#> <- Strict-Transport-Security: max-age=15724800
#> <- Vary: accept-encoding
#> <- X-Content-Type-Options: nosniff
#> <- X-Xss-Protection: 0
#> <- 
#> ✔ response has arrived
#> ✔ response has arrived
#> ✔ response has arrived
#> ✔ response has arrived
#> ✔ response has arrived
#> ✔ response has arrived
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!
#> ✔ Additional type names have been added!
#> ✔ Additional eic names have been added!

dplyr::glimpse(df)
#> Rows: 539
#> Columns: 28
#> $ domain_mrid                                     <chr> "10Y1001C--00085O", "10Y1001C--00085O", "10Y1001C--00085O", "1…
#> $ domain_name                                     <chr> "mFRR region", "mFRR region", "mFRR region", "mFRR region", "m…
#> $ bid_ts_connecting_domain_mrid                   <chr> "10Y1001C--00085O", "10Y1001C--00085O", "10Y1001C--00085O", "1…
#> $ bid_ts_connecting_domain_name                   <chr> "mFRR region", "mFRR region", "mFRR region", "mFRR region", "m…
#> $ bid_ts_acquiring_domain_mrid                    <chr> "10YCZ-CEPS-----N", "10YCZ-CEPS-----N", "10YCZ-CEPS-----N", "1…
#> $ bid_ts_acquiring_domain_name                    <chr> "Czech Republic", "Czech Republic", "Czech Republic", "Czech R…
#> $ bid_ts_mrid                                     <chr> "TS_NEED_CEPS_UP", "TS_NEED_CEPS_UP", "TS_NEED_CEPS_UP", "TS_N…
#> $ bid_ts_auction_mrid                             <chr> "AUCTION-mFRR", "AUCTION-mFRR", "AUCTION-mFRR", "AUCTION-mFRR"…
#> $ subject_market_participant_market_role_type     <chr> "A35", "A35", "A35", "A35", "A35", "A35", "A35", "A35", "A35",…
#> $ subject_market_participant_market_role_type_def <chr> "MOL Responsible", "MOL Responsible", "MOL Responsible", "MOL …
#> $ type                                            <chr> "A37", "A37", "A37", "A37", "A37", "A37", "A37", "A37", "A37",…
#> $ type_def                                        <chr> "Reserve tender document", "Reserve tender document", "Reserve…
#> $ process_type                                    <chr> "A47", "A47", "A47", "A47", "A47", "A47", "A47", "A47", "A47",…
#> $ process_type_def                                <chr> "Manual frequency restoration reserve", "Manual frequency rest…
#> $ bid_ts_flow_direction                           <chr> "A01", "A01", "A01", "A01", "A01", "A01", "A01", "A01", "A01",…
#> $ bid_ts_flow_direction_def                       <chr> "UP", "UP", "UP", "UP", "UP", "UP", "UP", "UP", "UP", "DOWN", …
#> $ created_date_time                               <dttm> 2026-10-20 10:22:00, 2026-10-20 10:22:00, 2026-10-20 10:22:00…
#> $ revision_number                                 <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
#> $ reserve_bid_period_time_interval_start          <dttm> 2024-01-09 09:30:00, 2024-01-09 09:30:00, 2024-01-09 09:30:00…
#> $ reserve_bid_period_time_interval_end            <dttm> 2024-03-14 10:00:00, 2024-03-14 10:00:00, 2024-03-14 10:00:00…
#> $ bid_ts_resolution                               <chr> "PT15M", "PT15M", "PT15M", "PT15M", "PT15M", "PT15M", "PT15M",…
#> $ bid_ts_time_interval_start                      <dttm> 2024-01-09 09:30:00, 2024-01-10 07:45:00, 2024-01-17 06:30:00…
#> $ bid_ts_time_interval_end                        <dttm> 2024-01-09 09:45:00, 2024-01-10 08:00:00, 2024-01-17 06:45:00…
#> $ bid_ts_point_dt_start                           <dttm> 2024-01-09 09:30:00, 2024-01-10 07:45:00, 2024-01-17 06:30:00…
#> $ bid_ts_point_quantity                           <dbl> 85, 100, 100, 100, 110, 110, 200, 200, 100, 50, 50, 50, 150, 5…
#> $ bid_ts_point_energy_price_amount                <dbl> 720, 999, 1000, 1000, 1300, 1300, 1300, 1300, 1000, -100, 450,…
#> $ bid_ts_currency_unit_name                       <chr> "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR", "EUR",…
#> $ bid_ts_quantity_measure_unit_name               <chr> "MAW", "MAW", "MAW", "MAW", "MAW", "MAW", "MAW", "MAW", "MAW",…