{"id":47676356,"url":"https://github.com/krose/entsoeapi","last_synced_at":"2026-04-02T13:32:17.705Z","repository":{"id":40401749,"uuid":"248516311","full_name":"krose/entsoeapi","owner":"krose","description":"R wrapper for ENTSO-E Transparency Platform API — electricity prices, generation, load, cross-border flows","archived":false,"fork":false,"pushed_at":"2026-03-25T19:18:00.000Z","size":11551,"stargazers_count":25,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-26T19:39:30.600Z","etag":null,"topics":["coal","congestion","demand","electricity","energy","entso-e","entsoe","europe","gas","generation","imbalance","installations","intraday","load","outages","power","prices","solar","supply","wind"],"latest_commit_sha":null,"homepage":"https://krose.github.io/entsoeapi/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krose.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-19T13:55:01.000Z","updated_at":"2026-03-25T19:05:28.000Z","dependencies_parsed_at":"2024-07-05T22:16:20.093Z","dependency_job_id":"8a0ba641-59a9-4416-8ed3-06e2a0f7e5e0","html_url":"https://github.com/krose/entsoeapi","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/krose/entsoeapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krose%2Fentsoeapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krose%2Fentsoeapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krose%2Fentsoeapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krose%2Fentsoeapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krose","download_url":"https://codeload.github.com/krose/entsoeapi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krose%2Fentsoeapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coal","congestion","demand","electricity","energy","entso-e","entsoe","europe","gas","generation","imbalance","installations","intraday","load","outages","power","prices","solar","supply","wind"],"created_at":"2026-04-02T13:32:14.912Z","updated_at":"2026-04-02T13:32:17.700Z","avatar_url":"https://github.com/krose.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: github_document \n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n) \n```\n\n# entsoeapi ![hexa sticker](man/figures/logo.png){width=\"120\" height=\"120\"}\n\n\u003c!-- badges: start --\u003e\n\n[![Lifecycle:experimental](https://lifecycle.r-lib.org/articles/figures/lifecycle-experimental.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)\\\n[![lint-project.yml](https://github.com/krose/entsoeapi/actions/workflows/lint-project.yml/badge.svg)](https://github.com/krose/entsoeapi/actions/workflows/lint-project.yml)\\\n[![R-CMD-check](https://github.com/krose/entsoeapi/actions/workflows/R-CMD-check.yml/badge.svg)](https://github.com/krose/entsoeapi/actions/workflows/R-CMD-check.yml)\\\n[![test-coverage.yml](https://github.com/krose/entsoeapi/actions/workflows/test-coverage.yml/badge.svg)](https://github.com/krose/entsoeapi/actions/workflows/test-coverage.yml)\n\n\u003c!-- badges: end --\u003e\n\nThe goal of `entsoeapi` package is to create an easy wrapper around the ENTSO-E [API](https://documenter.getpostman.com/view/7009892/2s93JtP3F6)'s data and transform them to tabular format without effort. (The downloadable data are available interactively on the ENTSO-E [transparency platform](https://transparency.entsoe.eu/) website as well.) \n\nThe package helps with\n\n-   displaying the queried endpoint URL to easier double check\n-   upfront checking of function arguments' validity to avoid useless API calls\n-   query pagination, by allowing the user to not worry about it at all since the package does all necessary requests\n-   unpacking compressed file responses\n-   caching data to enhance processing speed\n-   converting XML structures to tabular ones\n-   composing consistent and detailed outputs\n-   providing related, but not API accessible data (for instance: business_types)\n-   automatic assigning definitions to codes\n-   calculating and adding timestamps to data points (the response xml does not contain such information explicitly)\n\n------------------------------------------------------------------------\n\n-   Already available ENTSO-E API endpoints:\n    -   MARKET\n        -   implicit_offered_transfer_capacities (11.1)\n        -   explicit_offered_transfer_capacities (11.1.A)\n        -   continuous_offered_transfer_capacities (11.1)\n        -   flow_based_allocations (11.1.B)\n        -   auction_revenue (12.1.A)\n        -   total_nominated_capacity (12.1.B)\n        -   already_allocated_total_capacity (12.1.C)\n        -   day_ahead_prices (12.1.D)\n        -   net_positions (12.1.E)\n        -   congestion_income (12.1.E)\n        -   allocated_transfer_capacities_3rd_countries (12.1.H)\n    -   LOAD\n        -   load_actual_total (6.1.A)\n        -   load_day_ahead_total_forecast (6.1.B)\n        -   load_week_ahead_total_forecast (6.1.C)\n        -   load_month_ahead_total_forecast (6.1.D)\n        -   load_year_ahead_total_forecast (6.1.E)\n        -   load_year_ahead_forecast_margin (8.1)\n    -   GENERATION\n        -   gen_installed_capacity_per_pt (14.1.A)\n        -   the gen_installed_capacity_per_pu (14.1.B)\n        -   gen_day_ahead (14.1.C)\n        -   gen_wind_solar_forecasts (14.1.D)\n        -   gen_per_gen_unit (16.1.A)\n        -   gen_per_prod_type (16.1.B\u0026C)\n        -   the gen_storage_mean_filling_rate (16.1.D)\n    -   TRANSMISSION\n        -   expansion_and_dismantling_project (9.1) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   intraday_cross_border_transfer_limits (11.3)\n        -   forecasted_transfer_capacities (11.1.A)\n        -   day_ahead_commercial_sched (12.1.F)\n        -   total_commercial_sched (12.1.F)\n        -   cross_border_physical_flows (12.1.G)\n        -   redispatching_internal (13.1.A)\n        -   redispatching_cross_border (13.1.A)\n        -   countertrading (13.1.B)\n        -   costs_of_congestion_management (13.1.C)\n    -   OUTAGES\n        -   outages_cons_units (7.1.A\u0026B)\n        -   outages_fallbacks (IFs IN 7.2, mFRR 3.11, aFRR 3.10)\n        -   outages_transmission_grid (10.1.A\u0026B)\n        -   outages_offshore_grid (10.1.C)\n        -   outages_gen_units (15.1.A\u0026B)\n        -   outages_prod_units (15.1.C\u0026D)\n        -   outages_both (15.1.A\u0026B + 15.1.C\u0026D)\n    -   BALANCING\n        -   exchanged_volumes (aFRR 3.16, mFRR 3.17)\n        -   netted_volumes (IFs IN 3.10)\n        -   elastic_demands (IF mFRR 3.4)\n        -   balancing_border_cap_limit (IFs 4.3 \u0026 4.4)\n        -   exchanged_volumes_per_border (3.10, 3.16 \u0026 3.17)\n        -   netted_volumes_per_border (3.10, 3.16 \u0026 3.17) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   hvdc_link_constrains (4.5) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   changes_to_bid_availability (mFRR 9.9, aFRR 9.6\u00269.8) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   current_balancing_state (12.3.A)\n        -   balancing_energy_bids (12.3.B\u0026C) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   (12.3.D)\n        -   aggregated_balancing_energy_bids (12.3.E)\n        -   procured_balancing_capacity (12.3.F)\n        -   allocation_of_cross_zonal_balancing_cap (12.3.H\u0026I) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n        -   contracted_reserves (17.1.B\u0026C)\n        -   activated_balancing_prices (17.1.F)\n        -   imbalance_prices (17.1.G)\n        -   imbalance_volumes (17.1.H)\n        -   financial_expenses_and_income (17.1.I)\n        -   fcr_total_capacity (187.2)\n        -   rr_and_frr_actual_capacity (188.4 \u0026 189.3)\n        -   shares_of_fcr_capacity (187.2)\n        -   sharing_of_rr_and_frr_capacity (SO GL 190.1) (no data available on the ENTSO-E API yet, as of 24 March 2026)\n\nBe aware, that not all API endpoints are implemented in this package, and not every endpoint provides data.\n\nIf you would like to use an unimplemented endpoint, please submit an [issue](https://github.com/krose/entsoeapi/issues/new/choose) and we'll do our best to resolve it.\n\nIf the endpoint is already implemented, but the related function gives back an empty table, then check the response XML in a browser using the request URL displayed in the console just after issuing the function call. Another verification option might be to check the response on the [Entsoe-e Transparency Platform](https://transparency.entsoe.eu/).\n\nIn case of beta test version functions there may be unique quirks which are not handled yet. So please, compare the resulting tables to the data fn the [Entsoe-e Transparency Platform](https://transparency.entsoe.eu/).\n\n\\\n\u003cb\u003eIMPORTANT!\u003c/b\u003e\\\nSince the underlying engine has fairly been standardized with the introduction of version 0.7.0.0, there are significant (breaking) changes between the 0.7.0.0 and the previous versions.\n\n## Installation\n\nYou can install the development version of entsoeapi from [GitHub](https://github.com/krose/entsoeapi) with:\n\n```{r install, eval=FALSE}\nif (!require(\"devtools\", quietly = TRUE)) install.packages(\"devtools\", quiet = TRUE)\ndevtools::install_github(repo = \"krose/entsoeapi\", ref = \"main\")\n```\n\n## Security token\n\nRead the related ENTSO-E Transparency Platform documentation [here](https://transparencyplatform.zendesk.com/hc/en-us/articles/12845911031188-How-to-get-security-token) about how to get a security token. You should also create a `.Renviron` file in your working directory with a security token and call it `ENTSOE_PAT`.\n\n```{r edit renviron, eval=FALSE}\nif (!require(\"usethis\", quietly = TRUE)) install.packages(\"usethis\", quiet = TRUE)\nusethis::edit_r_environ()\n```\n\n`ENTSOE_PAT = \"your_security_token\"`\n\n## Examples\n\nYou use the eic codes to get the data. Let’s try to find the eic code for Germany.\n\n```{r example 1}\nif (!require(\"dplyr\", quietly = TRUE)) install.packages(\"dplyr\", quiet = TRUE)\nentsoeapi::all_approved_eic() |\u003e\n  dplyr::filter(eic_long_name == \"Germany\") |\u003e\n  dplyr::glimpse()\n```\n\nFor some of the data you need to translate the generation codes.\n\n```{r example 2}\nif (!require(\"knitr\", quietly = TRUE)) install.packages(\"knitr\", quiet = TRUE)\nentsoeapi::asset_types |\u003e\n  head(n = 12L) |\u003e\n  knitr::kable(format = \"html\")\n```\n\nLet’s get the demand of 2020-01-01 in Germany.\n\n```{r example 3}\nif (!require(\"dplyr\", quietly = TRUE)) install.packages(\"dplyr\")\nentsoeapi::load_actual_total(\n  eic = \"10Y1001A1001A83F\",\n  period_start = lubridate::ymd(\"2020-01-01\", tz = \"CET\"),\n  period_end = lubridate::ymd(\"2020-01-02\", tz = \"CET\")\n) |\u003e\n  dplyr::glimpse()\n```\n\nThis is basically how all the functions work, so let’s try to get the production data too.\n\n```{r example 4}\nif (!require(\"dplyr\", quietly = TRUE)) install.packages(\"dplyr\")\nentsoeapi::gen_per_prod_type(\n  eic = \"10Y1001A1001A83F\",\n  period_start = lubridate::ymd(\"2020-01-01\", tz = \"CET\"),\n  period_end = lubridate::ymd(\"2020-01-02\", tz = \"CET\"),\n  gen_type = NULL,\n  tidy_output = TRUE\n) |\u003e\n  dplyr::glimpse()\n```\n\n## Code of Conduct\n\n## Code of Conduct\n\nPlease note that the entsoeapi project is released with a [Contributor Code of Conduct](https://krose.github.io/entsoeapi/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrose%2Fentsoeapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrose%2Fentsoeapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrose%2Fentsoeapi/lists"}