5  Programmatic access (APIs)

R-universe provides several APIs for programmatic access, requiring no authentication. Thanks to the APIs you can list universes, packages in an universe, get information on packages, perform searches.

You can interact with the API in two ways:
- Create API calls “manually” in the command-line or R.
- Use the universe R package available from rOpenSci’s R-universe.

This page demonstrates usage with {httr2} or {universe} directly.

5.1 Universe-specific APIs

API endpoints start with the universe URL.
This documentation uses https://jeroen.r-universe.dev as an example, but you can replace it with any universe URL.

5.1.1 List of all universes

URL: https://r-universe.dev/stats/everyone

Example using {httr2}:

universes <- httr2::request("https://r-universe.dev/stats/everyone") |>
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()
str(universes, max.level = 1)
List of 2
 $ universes  :List of 9895
 $ maintainers:List of 9694
head(universes[["universes"]])
[[1]]
[1] "09dohkim"

[[2]]
[1] "16cile"

[[3]]
[1] "16eagle"

[[4]]
[1] "1802515849"

[[5]]
[1] "1vbutkus"

[[6]]
[1] "2005m"
head(universes[["maintainers"]])
[[1]]
[1] "000100100110001"

[[2]]
[1] "09dohkim"

[[3]]
[1] "0umfhxcvx5j7joaohfss5mncnistjj6q"

[[4]]
[1] "123caj"

[[5]]
[1] "13479776"

[[6]]
[1] "16cile"

Example using {universe}:

universe::everyone() |> head()
[1] "000100100110001"                  "09dohkim"                        
[3] "0umfhxcvx5j7joaohfss5mncnistjj6q" "123caj"                          
[5] "13479776"                         "16cile"                          
universe::everyone(type = "universes") |> head()
[1] "09dohkim"   "16cile"     "16eagle"    "1802515849" "1vbutkus"  
[6] "2005m"     
universe::everyone(type = "maintainers") |> head()
[1] "000100100110001"                  "09dohkim"                        
[3] "0umfhxcvx5j7joaohfss5mncnistjj6q" "123caj"                          
[5] "13479776"                         "16cile"                          

5.1.2 List of packages in an universe

URL: https://<username>.r-universe.dev/api/ls

Example using {httr2}:

packages <- httr2::request("https://jeroen.r-universe.dev/api/ls") |>
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()
str(packages)
List of 19
 $ : chr "RAppArmor"
 $ : chr "V8"
 $ : chr "badgen"
 $ : chr "base64"
 $ : chr "bcrypt"
 $ : chr "brotli"
 $ : chr "curl"
 $ : chr "gpg"
 $ : chr "js"
 $ : chr "jsonlite"
 $ : chr "maketools"
 $ : chr "mongolite"
 $ : chr "openssl"
 $ : chr "protolite"
 $ : chr "rjade"
 $ : chr "sys"
 $ : chr "unix"
 $ : chr "webp"
 $ : chr "webutils"

Example using {universe}:

packages <- universe::universe_ls("jeroen")
str(packages)
 chr [1:19] "RAppArmor" "V8" "badgen" "base64" "bcrypt" "brotli" "curl" ...

5.1.3 Information of all packages in an universe

URL: https://<username>.r-universe.dev/api/packages

Parameters:

  • limit: Maximum number of results (default: 100). Use the ls endpoint to determine the total number of packages and adjust the limit accordingly.

Example using {httr2}:

packages <- httr2::request("https://jeroen.r-universe.dev/api/packages") |>
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()
# The result is a list of packages
str(packages[[1]], max.level = 1)
List of 76
 $ Package           : chr "protolite"
 $ Type              : chr "Package"
 $ Title             : chr "Highly Optimized Protocol Buffer Serializers"
 $ Authors@R         : chr "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"[email protected]\",\ncomment = c(ORCID ="| __truncated__
 $ Description       : chr "Pure C++ implementations for reading and writing several\ncommon data formats based on Google protocol-buffers."| __truncated__
 $ Version           : chr "2.4.0"
 $ License           : chr "MIT + file LICENSE"
 $ URL               : chr "https://github.com/jeroen/protolite\nhttps://jeroen.r-universe.dev/protolite"
 $ BugReports        : chr "https://github.com/jeroen/protolite/issues"
 $ SystemRequirements: chr "libprotobuf and protobuf-compiler"
 $ Roxygen           : chr "list(load = \"installed\", markdown = TRUE)"
 $ Encoding          : chr "UTF-8"
 $ Language          : chr "en-US"
 $ RoxygenNote       : chr "7.2.1"
 $ Config/pak/sysreqs: chr "libprotobuf-dev protobuf-compiler libprotoc-dev"
 $ Repository        : chr "https://jeroen.r-universe.dev"
 $ RemoteUrl         : chr "https://github.com/jeroen/protolite"
 $ RemoteRef         : chr "HEAD"
 $ RemoteSha         : chr "986799f18bd7d05e634ecc5585ac459742c0c109"
 $ NeedsCompilation  : chr "yes"
 $ Packaged          :List of 2
 $ Author            : chr "Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>)"
 $ Maintainer        : chr "Jeroen Ooms <[email protected]>"
 $ MD5sum            : chr "a0f6c01f7020c28bbf408659a5914056"
 $ _user             : chr "jeroen"
 $ _type             : chr "src"
 $ _file             : chr "protolite_2.4.0.tar.gz"
 $ _fileid           : chr "04b1c38926a5ccf070173d04cc88197e2562caca82adf02bb625bbf94d5a86df"
 $ _filesize         : int 110738
 $ _sha256           : chr "04b1c38926a5ccf070173d04cc88197e2562caca82adf02bb625bbf94d5a86df"
 $ _created          : chr "2025-02-08T14:27:15.000Z"
 $ _published        : chr "2025-02-08T14:32:21.507Z"
 $ _upstream         : chr "https://github.com/jeroen/protolite"
 $ _commit           :List of 5
 $ _maintainer       :List of 7
 $ _distro           : chr "noble"
 $ _host             : chr "GitHub-Actions"
 $ _status           : chr "success"
 $ _pkgdocs          : chr "skipped"
 $ _winbinary        : chr "success"
 $ _macbinary        : chr "success"
 $ _wasmbinary       : chr "none"
 $ _linuxdevel       : chr "success"
 $ _windevel         : chr "success"
 $ _buildurl         : chr "https://github.com/r-universe/jeroen/actions/runs/13216495602"
 $ _registered       : logi TRUE
 $ _dependencies     :List of 7
 $ _owner            : chr "jeroen"
 $ _selfowned        : logi TRUE
 $ _usedby           : int 19
 $ _updates          :List of 3
 $ _tags             : list()
 $ _stars            : int 48
 $ _contributions    :List of 2
 $ _userbio          :List of 4
 $ _downloads        :List of 2
 $ _devurl           : chr "https://github.com/jeroen/protolite"
 $ _searchresults    : int 27
 $ _topics           :List of 2
 $ _rbuild           : chr "4.4.2"
 $ _assets           :List of 11
 $ _homeurl          : chr "https://github.com/jeroen/protolite"
 $ _realowner        : chr "jeroen"
 $ _cranurl          : logi TRUE
 $ _releases         :List of 18
 $ _exports          :List of 7
 $ _help             :List of 3
 $ _readme           : chr "https://github.com/jeroen/protolite/raw/HEAD/README.md"
 $ _rundeps          :List of 2
 $ _sysdeps          :List of 2
 $ _score            : num 7.83
 $ _indexed          : logi TRUE
 $ _nocasepkg        : chr "protolite"
 $ _universes        :List of 1
 $ _previous         : chr "2.3.1"
 $ _binaries         :List of 11

Example using {universe}:

packages <- universe::universe_all_packages("jeroen")
# The result is a list of packages
str(packages[[1]], max.level = 1)
List of 76
 $ Package           : chr "protolite"
 $ Type              : chr "Package"
 $ Title             : chr "Highly Optimized Protocol Buffer Serializers"
 $ Authors@R         : chr "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"[email protected]\",\ncomment = c(ORCID ="| __truncated__
 $ Description       : chr "Pure C++ implementations for reading and writing several\ncommon data formats based on Google protocol-buffers."| __truncated__
 $ Version           : chr "2.4.0"
 $ License           : chr "MIT + file LICENSE"
 $ URL               : chr "https://github.com/jeroen/protolite\nhttps://jeroen.r-universe.dev/protolite"
 $ BugReports        : chr "https://github.com/jeroen/protolite/issues"
 $ SystemRequirements: chr "libprotobuf and protobuf-compiler"
 $ Roxygen           : chr "list(load = \"installed\", markdown = TRUE)"
 $ Encoding          : chr "UTF-8"
 $ Language          : chr "en-US"
 $ RoxygenNote       : chr "7.2.1"
 $ Config/pak/sysreqs: chr "libprotobuf-dev protobuf-compiler libprotoc-dev"
 $ Repository        : chr "https://jeroen.r-universe.dev"
 $ RemoteUrl         : chr "https://github.com/jeroen/protolite"
 $ RemoteRef         : chr "HEAD"
 $ RemoteSha         : chr "986799f18bd7d05e634ecc5585ac459742c0c109"
 $ NeedsCompilation  : chr "yes"
 $ Packaged          :List of 2
 $ Author            : chr "Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>)"
 $ Maintainer        : chr "Jeroen Ooms <[email protected]>"
 $ MD5sum            : chr "a0f6c01f7020c28bbf408659a5914056"
 $ _user             : chr "jeroen"
 $ _type             : chr "src"
 $ _file             : chr "protolite_2.4.0.tar.gz"
 $ _fileid           : chr "04b1c38926a5ccf070173d04cc88197e2562caca82adf02bb625bbf94d5a86df"
 $ _filesize         : int 110738
 $ _sha256           : chr "04b1c38926a5ccf070173d04cc88197e2562caca82adf02bb625bbf94d5a86df"
 $ _created          : chr "2025-02-08T14:27:15.000Z"
 $ _published        : chr "2025-02-08T14:32:21.507Z"
 $ _upstream         : chr "https://github.com/jeroen/protolite"
 $ _commit           :List of 5
 $ _maintainer       :List of 7
 $ _distro           : chr "noble"
 $ _host             : chr "GitHub-Actions"
 $ _status           : chr "success"
 $ _pkgdocs          : chr "skipped"
 $ _winbinary        : chr "success"
 $ _macbinary        : chr "success"
 $ _wasmbinary       : chr "none"
 $ _linuxdevel       : chr "success"
 $ _windevel         : chr "success"
 $ _buildurl         : chr "https://github.com/r-universe/jeroen/actions/runs/13216495602"
 $ _registered       : logi TRUE
 $ _dependencies     :List of 7
 $ _owner            : chr "jeroen"
 $ _selfowned        : logi TRUE
 $ _usedby           : int 19
 $ _updates          :List of 3
 $ _tags             : list()
 $ _stars            : int 48
 $ _contributions    :List of 2
 $ _userbio          :List of 4
 $ _downloads        :List of 2
 $ _devurl           : chr "https://github.com/jeroen/protolite"
 $ _searchresults    : int 27
 $ _topics           :List of 2
 $ _rbuild           : chr "4.4.2"
 $ _assets           :List of 11
 $ _homeurl          : chr "https://github.com/jeroen/protolite"
 $ _realowner        : chr "jeroen"
 $ _cranurl          : logi TRUE
 $ _releases         :List of 18
 $ _exports          :List of 7
 $ _help             :List of 3
 $ _readme           : chr "https://github.com/jeroen/protolite/raw/HEAD/README.md"
 $ _rundeps          :List of 2
 $ _sysdeps          :List of 2
 $ _score            : num 7.83
 $ _indexed          : logi TRUE
 $ _nocasepkg        : chr "protolite"
 $ _universes        :List of 1
 $ _previous         : chr "2.3.1"
 $ _binaries         :List of 11

5.1.4 Information on a single package in an universe

URL: https://<username>.r-universe.dev/api/packages/<package>

Example using {httr2}:

v8 <- httr2::request("https://jeroen.r-universe.dev/api/packages/V8") |>
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()

str(v8, max.level = 1)
List of 80
 $ Package           : chr "V8"
 $ Type              : chr "Package"
 $ Title             : chr "Embedded JavaScript and WebAssembly Engine for R"
 $ Version           : chr "6.0.1"
 $ Authors@R         : chr "c(\nperson(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"[email protected]\",\ncomment = c(ORC"| __truncated__
 $ Description       : chr "An R interface to V8 <https://v8.dev>: Google's open\nsource JavaScript and WebAssembly engine. This package ca"| __truncated__
 $ License           : chr "MIT + file LICENSE"
 $ URL               : chr "https://jeroen.r-universe.dev/V8"
 $ BugReports        : chr "https://github.com/jeroen/v8/issues"
 $ SystemRequirements: chr "V8 engine version 6+ is needed for ES6 and WASM\nsupport. On Linux you can build against libv8-dev (Debian) or\"| __truncated__
 $ NeedsCompilation  : chr "yes"
 $ VignetteBuilder   : chr "knitr"
 $ RoxygenNote       : chr "7.3.1"
 $ Roxygen           : chr "list(load = \"installed\", markdown = TRUE)"
 $ Language          : chr "en-US"
 $ Encoding          : chr "UTF-8"
 $ Biarch            : chr "true"
 $ Config/pak/sysreqs: chr "libnode-dev"
 $ Repository        : chr "https://jeroen.r-universe.dev"
 $ RemoteUrl         : chr "https://github.com/jeroen/v8"
 $ RemoteRef         : chr "HEAD"
 $ RemoteSha         : chr "b81bf244528575c5afc678ed3d46e96022151c3c"
 $ Packaged          :List of 2
 $ Author            : chr "Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>),\nJan Marvin Garbuszus [ctb]"
 $ Maintainer        : chr "Jeroen Ooms <[email protected]>"
 $ MD5sum            : chr "a29421fae23dc2f4b7aa92aa28a7c5c2"
 $ _user             : chr "jeroen"
 $ _type             : chr "src"
 $ _file             : chr "V8_6.0.1.tar.gz"
 $ _fileid           : chr "4aa7f4c773ad57e5a3e1194ffb4b70d2065772ddc257480482b9a973fc305c89"
 $ _filesize         : int 197620
 $ _sha256           : chr "4aa7f4c773ad57e5a3e1194ffb4b70d2065772ddc257480482b9a973fc305c89"
 $ _created          : chr "2025-02-02T18:25:21.000Z"
 $ _published        : chr "2025-02-02T18:28:57.468Z"
 $ _upstream         : chr "https://github.com/jeroen/v8"
 $ _commit           :List of 5
 $ _maintainer       :List of 7
 $ _distro           : chr "noble"
 $ _host             : chr "GitHub-Actions"
 $ _status           : chr "success"
 $ _pkgdocs          : chr "skipped"
 $ _winbinary        : chr "success"
 $ _macbinary        : chr "success"
 $ _wasmbinary       : chr "none"
 $ _linuxdevel       : chr "success"
 $ _windevel         : chr "success"
 $ _buildurl         : chr "https://github.com/r-universe/jeroen/actions/runs/13101341597"
 $ _registered       : logi TRUE
 $ _dependencies     :List of 8
 $ _owner            : chr "jeroen"
 $ _selfowned        : logi TRUE
 $ _usedby           : int 324
 $ _updates          :List of 12
 $ _tags             : list()
 $ _topics           :List of 5
 $ _stars            : int 201
 $ _contributions    :List of 10
 $ _userbio          :List of 4
 $ _downloads        :List of 2
 $ _mentions         : int 2
 $ _devurl           : chr "https://github.com/jeroen/v8"
 $ _searchresults    : int 500
 $ _rbuild           : chr "4.4.2"
 $ _assets           :List of 11
 $ _homeurl          : chr "https://github.com/jeroen/v8"
 $ _realowner        : chr "jeroen"
 $ _cranurl          : logi TRUE
 $ _releases         :List of 50
 $ _exports          :List of 6
 $ _help             :List of 3
 $ _readme           : chr "https://github.com/jeroen/v8/raw/HEAD/README.md"
 $ _rundeps          :List of 3
 $ _sysdeps          :List of 2
 $ _vignettes        :List of 2
 $ _score            : num 15.8
 $ _indexed          : logi TRUE
 $ _nocasepkg        : chr "v8"
 $ _universes        :List of 1
 $ _previous         : chr "6.0.0"
 $ _binaries         :List of 11

Example using {universe}:

V8 <- universe::universe_one_package("jeroen", "V8")
# The result is a list
str(V8, max.level = 1)
List of 80
 $ Package           : chr "V8"
 $ Type              : chr "Package"
 $ Title             : chr "Embedded JavaScript and WebAssembly Engine for R"
 $ Version           : chr "6.0.1"
 $ Authors@R         : chr "c(\nperson(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"[email protected]\",\ncomment = c(ORC"| __truncated__
 $ Description       : chr "An R interface to V8 <https://v8.dev>: Google's open\nsource JavaScript and WebAssembly engine. This package ca"| __truncated__
 $ License           : chr "MIT + file LICENSE"
 $ URL               : chr "https://jeroen.r-universe.dev/V8"
 $ BugReports        : chr "https://github.com/jeroen/v8/issues"
 $ SystemRequirements: chr "V8 engine version 6+ is needed for ES6 and WASM\nsupport. On Linux you can build against libv8-dev (Debian) or\"| __truncated__
 $ NeedsCompilation  : chr "yes"
 $ VignetteBuilder   : chr "knitr"
 $ RoxygenNote       : chr "7.3.1"
 $ Roxygen           : chr "list(load = \"installed\", markdown = TRUE)"
 $ Language          : chr "en-US"
 $ Encoding          : chr "UTF-8"
 $ Biarch            : chr "true"
 $ Config/pak/sysreqs: chr "libnode-dev"
 $ Repository        : chr "https://jeroen.r-universe.dev"
 $ RemoteUrl         : chr "https://github.com/jeroen/v8"
 $ RemoteRef         : chr "HEAD"
 $ RemoteSha         : chr "b81bf244528575c5afc678ed3d46e96022151c3c"
 $ Packaged          :List of 2
 $ Author            : chr "Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>),\nJan Marvin Garbuszus [ctb]"
 $ Maintainer        : chr "Jeroen Ooms <[email protected]>"
 $ MD5sum            : chr "a29421fae23dc2f4b7aa92aa28a7c5c2"
 $ _user             : chr "jeroen"
 $ _type             : chr "src"
 $ _file             : chr "V8_6.0.1.tar.gz"
 $ _fileid           : chr "4aa7f4c773ad57e5a3e1194ffb4b70d2065772ddc257480482b9a973fc305c89"
 $ _filesize         : int 197620
 $ _sha256           : chr "4aa7f4c773ad57e5a3e1194ffb4b70d2065772ddc257480482b9a973fc305c89"
 $ _created          : chr "2025-02-02T18:25:21.000Z"
 $ _published        : chr "2025-02-02T18:28:57.468Z"
 $ _upstream         : chr "https://github.com/jeroen/v8"
 $ _commit           :List of 5
 $ _maintainer       :List of 7
 $ _distro           : chr "noble"
 $ _host             : chr "GitHub-Actions"
 $ _status           : chr "success"
 $ _pkgdocs          : chr "skipped"
 $ _winbinary        : chr "success"
 $ _macbinary        : chr "success"
 $ _wasmbinary       : chr "none"
 $ _linuxdevel       : chr "success"
 $ _windevel         : chr "success"
 $ _buildurl         : chr "https://github.com/r-universe/jeroen/actions/runs/13101341597"
 $ _registered       : logi TRUE
 $ _dependencies     :List of 8
 $ _owner            : chr "jeroen"
 $ _selfowned        : logi TRUE
 $ _usedby           : int 324
 $ _updates          :List of 12
 $ _tags             : list()
 $ _topics           :List of 5
 $ _stars            : int 201
 $ _contributions    :List of 10
 $ _userbio          :List of 4
 $ _downloads        :List of 2
 $ _mentions         : int 2
 $ _devurl           : chr "https://github.com/jeroen/v8"
 $ _searchresults    : int 500
 $ _rbuild           : chr "4.4.2"
 $ _assets           :List of 11
 $ _homeurl          : chr "https://github.com/jeroen/v8"
 $ _realowner        : chr "jeroen"
 $ _cranurl          : logi TRUE
 $ _releases         :List of 50
 $ _exports          :List of 6
 $ _help             :List of 3
 $ _readme           : chr "https://github.com/jeroen/v8/raw/HEAD/README.md"
 $ _rundeps          :List of 3
 $ _sysdeps          :List of 2
 $ _vignettes        :List of 2
 $ _score            : num 15.8
 $ _indexed          : logi TRUE
 $ _nocasepkg        : chr "v8"
 $ _universes        :List of 1
 $ _previous         : chr "6.0.0"
 $ _binaries         :List of 11

5.2 Database dump

URL: https://<username>.r-universe.dev/api/dbdump

This API endpoint is not supported by the universe package yet.

ropensci <- mongolite::read_bson('https://ropensci.r-universe.dev/api/dbdump')

5.2.1 Search in an universe

URL: https://<username>.r-universe.dev/api/search Parameters:

  • q: Query string (supports advanced fields).
  • limit: Maximum number of results (default: 100). To retrieve all results:
    • Perform an initial query to get the value total field.
    • Perform a second query with limit=total.

Using {httr2}:

How many packages in the rOpenSci universe depend on httr2?

deps <- httr2::request("https://ropensci.r-universe.dev/api/search") |>
  httr2::req_url_query(q = 'needs:httr2') |> # packages depending on {httr2}
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()

str(deps, max.level = 1)
List of 5
 $ results:List of 32
 $ query  :List of 2
 $ skip   : int 0
 $ limit  : int 100
 $ total  : int 32
deps$total
[1] 32

Using {universe}:

deps <- universe::universe_search("ropensci", query = 'needs:httr2')
# The result is a list of packages
str(deps, max.level = 1)
List of 5
 $ results:List of 32
 $ query  :List of 2
 $ skip   : int 0
 $ limit  : int 100
 $ total  : int 32
deps$total
[1] 32

5.3 Search all universes

URL: https://r-universe.dev/api/search Parameters:

  • q: the query string. You can use the advanced fields.
  • limit: the number of results to return, by default a maximum of 100 but you can
    • do a first request to determine the total number of hits N, returned in the response as the total field,
    • then do a second request using limit=N.

Example using {httr2}:

packages <- httr2::request("https://r-universe.dev/api/search") |>
  httr2::req_url_query(q = '"weather data"') |>
  httr2::req_user_agent("R-universe docs") |>
  httr2::req_perform() |>
  httr2::resp_body_json()
str(packages, max.level = 1)
List of 5
 $ results:List of 76
 $ query  :List of 1
 $ skip   : int 0
 $ limit  : int 100
 $ total  : int 76
str(packages$results[[1]])
List of 15
 $ _id           : chr "67acd7894083faa4563aeac7"
 $ Package       : chr "weatherOz"
 $ Title         : chr "An API Client for Australian Weather and Climate Data Resources"
 $ Description   : chr "Provides automated downloading, parsing and formatting of\nweather data for Australia through API endpoints pro"| __truncated__
 $ _user         : chr "ropensci"
 $ _usedby       : int 0
 $ _searchresults: int 39
 $ _score        : num 8.53
 $ _uuid         : int 1200269
 $ maintainer    :List of 6
  ..$ name   : chr "Rodrigo Pires"
  ..$ email  : chr "[email protected]"
  ..$ login  : chr "bozaah"
  ..$ twitter: chr "@ecophysplants"
  ..$ uuid   : int 11730095
  ..$ orcid  : chr "0000-0001-7384-6849"
 $ updated       : int 1732690924
 $ stars         : int 32
 $ topics        :List of 19
  ..$ : chr "dpird"
  ..$ : chr "bom"
  ..$ : chr "meteorological-data"
  ..$ : chr "weather-forecast"
  ..$ : chr "australia"
  ..$ : chr "weather"
  ..$ : chr "weather-data"
  ..$ : chr "meteorology"
  ..$ : chr "western-australia"
  ..$ : chr "australia-bureau-of-meteorology"
  ..$ : chr "western-australia-agriculture"
  ..$ : chr "australia-agriculture"
  ..$ : chr "australia-climate"
  ..$ : chr "australia-weather"
  ..$ : chr "api-client"
  ..$ : chr "climate"
  ..$ : chr "data"
  ..$ : chr "rainfall"
  ..$ : chr "weather-api"
 $ match         : num 170
 $ rank          : num 1453

Example using {universe}:

packages <- universe::global_search(query = '"weather data"', limit = 100L)
str(packages, max.level = 1)
List of 5
 $ results:List of 76
 $ query  :List of 1
 $ skip   : int 0
 $ limit  : int 100
 $ total  : int 76
str(packages$results[[1]])
List of 15
 $ _id           : chr "67acd7894083faa4563aeac7"
 $ Package       : chr "weatherOz"
 $ Title         : chr "An API Client for Australian Weather and Climate Data Resources"
 $ Description   : chr "Provides automated downloading, parsing and formatting of\nweather data for Australia through API endpoints pro"| __truncated__
 $ _user         : chr "ropensci"
 $ _usedby       : int 0
 $ _searchresults: int 39
 $ _score        : num 8.53
 $ _uuid         : int 1200269
 $ maintainer    :List of 6
  ..$ name   : chr "Rodrigo Pires"
  ..$ email  : chr "[email protected]"
  ..$ login  : chr "bozaah"
  ..$ twitter: chr "@ecophysplants"
  ..$ uuid   : int 11730095
  ..$ orcid  : chr "0000-0001-7384-6849"
 $ updated       : int 1732690924
 $ stars         : int 32
 $ topics        :List of 19
  ..$ : chr "dpird"
  ..$ : chr "bom"
  ..$ : chr "meteorological-data"
  ..$ : chr "weather-forecast"
  ..$ : chr "australia"
  ..$ : chr "weather"
  ..$ : chr "weather-data"
  ..$ : chr "meteorology"
  ..$ : chr "western-australia"
  ..$ : chr "australia-bureau-of-meteorology"
  ..$ : chr "western-australia-agriculture"
  ..$ : chr "australia-agriculture"
  ..$ : chr "australia-climate"
  ..$ : chr "australia-weather"
  ..$ : chr "api-client"
  ..$ : chr "climate"
  ..$ : chr "data"
  ..$ : chr "rainfall"
  ..$ : chr "weather-api"
 $ match         : num 170
 $ rank          : num 1453

Note that searching globally only returns “indexed” packages: if a package is included in several universes, it still shows up only once in search results because of our deduplication efforts.

5.4 Database dump (all universes)

URL: https://r-universe.dev/api/dbdump

This API endpoint is not supported by the universe package yet.

dump <- mongolite::read_bson('https://r-universe.dev/api/dbdump')