bunddev provides a small registry of public APIs and
helpers to explore their OpenAPI specifications. Some APIs enforce rate
limits; check the registry details for service-specific guidance.
API-specific helpers return tidy tibbles by default. Use
bunddev_call() for raw responses.
When flatten = TRUE, set flatten_mode to
“json” (default), “drop”, or “unnest”. Note that “unnest” expands
list-columns into multiple rows.
Use bunddev_parameters("<api>") to see the
currently valid parameters for an API if the upstream spec has changed.
For endpoint-specific enums, use
bunddev_parameter_values(smard_timeseries, "resolution").
Several adapters add parsed POSIXct time columns (suffix
_time) using the Europe/Berlin timezone (for example
time in SMARD, start_time in DWD, and
date_time in Tagesschau).
The package separates a core OpenAPI layer from adapter helpers for specific APIs.
bunddev_list()
#> # A tibble: 47 × 8
#> id title provider spec_url docs_url auth rate_limit tags
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <lis>
#> 1 abfallnavi Abfa… regio iT https:/… https:/… none <NA> <chr>
#> 2 ausbildungssuche Ausb… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 3 autobahn Auto… Autobah… https:/… https:/… none <NA> <chr>
#> 4 berufssprachkurssuche Beru… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 5 bewerberboerse Bewe… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 6 bundeshaushalt Bund… Bundesm… https:/… https:/… none <NA> <chr>
#> 7 bundesrat Bund… Bundesr… https:/… https:/… none <NA> <chr>
#> 8 bundestag Bund… Deutsch… https:/… https:/… none <NA> <chr>
#> 9 bundestag_lobbyregis… Bund… Deutsch… https:/… https:/… none <NA> <chr>
#> 10 coachingangebote Coac… Bundesa… https:/… https:/… api_… <NA> <chr>
#> # ℹ 37 more rowsThis package builds on the work of the bund.dev team, who curate and centralize public sector APIs for the community (https://bund.dev, https://github.com/bundesAPI).
Filter by tag to narrow down the list.
bunddev_list(tag = "jobs")
#> # A tibble: 5 × 8
#> id title provider spec_url docs_url auth rate_limit tags
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <lis>
#> 1 ausbildungssuche Ausbildung… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 2 bewerberboerse Bewerberbo… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 3 coachingangebote Coachingan… Bundesa… https:/… https:/… api_… <NA> <chr>
#> 4 entgeltatlas Entgeltatl… Bundesa… https:/… https:/… none <NA> <chr>
#> 5 jobsuche Jobsuche A… Bundesa… https:/… https:/… api_… <NA> <chr>endpoints <- bunddev_endpoints("abfallnavi")
head(endpoints, 5)
#> # A tibble: 5 × 4
#> method path operation_id summary
#> <chr> <chr> <chr> <chr>
#> 1 get /orte orte Orte im System
#> 2 get /orte/{ortId} ort Informationen zu Ort
#> 3 get /orte/{ortId}/strassen strassenProOrt Straßen im Ort
#> 4 get /strassen/{strassenId} hausnummernProStrasse Hausnummern in Straße
#> 5 get /fraktionen muellarten Müllarten im SystemSys.setenv(BEWERBERBOERSE_API_KEY = "jobboerse-bewerbersuche-ui")
bunddev_auth_set("bewerberboerse", type = "api_key", env_var = "BEWERBERBOERSE_API_KEY")
bewerber <- bewerberboerse_search(
params = list(was = "data", size = 10),
flatten = TRUE
)
details <- bewerberboerse_details(bewerber$refnr[[1]], flatten = TRUE)roads <- autobahn_roads()
road_id <- roads$road_id[[1]]
roadworks <- autobahn_roadworks(road_id, flatten = TRUE)
warnings <- autobahn_warnings(road_id, flatten = TRUE)
roadwork_details <- autobahn_roadwork_details(roadworks$identifier[[1]], flatten = TRUE)
warning_details <- autobahn_warning_details(warnings$identifier[[1]], flatten = TRUE)library(ggplot2)
timestamp <- 1627250400000
series <- smard_timeseries(410, region = "DE", resolution = "hour", timestamp = timestamp)
ggplot(series, aes(time, value)) +
geom_line() +
labs(x = "Time", y = "MW")series$time is a POSIXct column parsed in
Europe/Berlin.