Skip to contents

There are several other R packages interacting with the ODK ecosystem, and/or OData.

Package ruODK odkr odk odkmeta koboloadeR Pentaho Kettle tutorial
Elevator pitch “ckanr for ODK Central” “Drive ODK Briefcase through R” “Export ODK Aggregate to SPSS” “Export ODK Aggregate to STATA” “Metapackage for the extended ODK ecosystem” “What ruODK does, but as GUI”
Last commit Last-changedate Last-changedate Nov 2017 Last-changedate Last-changedate Last-changedate
Website docs docs docs docs
Test coverage ticcodecov Build status codecov ❌ In repo Travis build status AppVeyor Build Status codecov NA
Working examples README, 3 vignettes, pkgdown, Rmd templates README, pkgdown CRAN PDF README README, 9 vignettes, shiny apps, pkgdown Tutorial with screenshots
Available on CRAN CRAN status CRAN status version NA NA NA
Technologies Tidyverse R, XForms Base R Base R Stata R metapackage, XlsForms Pentaho Kettle GUI
External dependencies None Java, ODK Briefcase SPSS Stata Java, ODK Briefcase, wraps odkr Pentaho Kettle, Java
Affiliation ROpenSci RapidSurveys Muntashir-Al-Arefin ODK Central developer Matt White UNHCR Schemetrica
Covers ODK Central OData API ✅ ❌ ❌ ❌ ❌ ✅
Covers ODK Central REST API ✅ ❌ ❌ ❌ ❌ ❌
Covers ODK Central bulk export ✅ ❌ ❌ ✅ ❌ ✅
Covers ODK Central OpenRosa API ❌ no need, gets all data through OData/REST API ✅ via ODK Briefcase ❌ ❌ ✅ via ODK Briefcase ✅
Data post-processing ✅ ✅ ❌ ✅ ✅ ✅
Data visualisation examples ✅ ❌ ❌ ❌ ✅ ❌

In summary:

ruODK provides a dependency-free interface to ODK Central.

koboloadeR is a metapackage containing lots of ancillary packages, with some heavy dependencies on Java and ODK Briefcase (which in turn can access ODK Central). Although built around the XlsForm standard and paradigm, koboloadeR is well worth exploring as a larger context to data wrangling in the ODK ecosystem.

Schemetrica’s tutorial illustrates data ETL from ODK Central and deserves a special mention, as it is both very recent and aimed specifically against ODK Central. The GUI paradigm of Pentaho Kettle addresses a different audience to the scripting paradigm of ruODK. It should be mentioned that Kettle’s composable data manipulation steps can be used for many other use cases apart from ODK Central.

Two non-R tools cover the same ODK Central API and deserve a mention.

pyODK is the official ODK Python client for the ODK Central API (pip install pyodk, targets Central v2026.2.0). It offers a Client with projects, forms, submissions, entities and entity_lists helpers, plus generic HTTP verb methods that expose the full API without a dedicated helper. pyODK is the Python counterpart to ruODK: scripted, reproducible pipelines, with tabular Submission data via get_table(). Choose between them by pipeline language, not by capability.

bruno-API-ODKCentral is a ready-made collection for Bruno, the open source offline API client, by CEN Nouvelle-Aquitaine (tested against Central v2024.3.1). It groups requests into folders for authentication, instance, Projects, Forms and Datasets (Entity Lists), with an environment file for the server URL and credentials. Like the Pentaho tutorial above, it addresses the GUI audience: click through requests to explore the REST API interactively, test endpoints, and inspect raw responses before scripting them with ruODK or pyODK.

Package ruODK odataR cbsodataR OData OData JDBC R tutorial
Elevator pitch “ckanr for ODK Central” “OData client for https://opendata.cbs.nl (and similar)” “OData client for https://www.cbs.nl” “Minimal OData example” “Minimal RJDBC example”
Last commit Last-changedate Last-changedate Last-changedate Dec 2016 ❓
Website docs docs docs docs
Test coverage ticBuild status codecov ❌ Travis-CI Build Status AppVeyor Build Status ❌ ❌
Targets ODK Central ✅ ❌ ❌ ❌ ❌
Works with ODK Central ✅ ❓ ❓ ❌ ❌
Data wrangling helpers for post-processing ✅ some some ❌ ❌
Actively maintained to work against ODK Central ✅ ❌ ❌ ❌ ❌
Technologies R, httr, xml2, tidyr, purrr R, jsonlite, tidyverse R, tidyverse R, XML, RJSONIO R, RJDBC, Java
External dependencies ✅ None ✅ None ✅ None ✅ None ❌ JDBC, Java
Available on CRAN CRAN status NA version version NA

In summary:

ruODK is the only R package explicitly aimed at ODK Central’s OData and RESTful API, as well as providing context and helpers around specific recurring data wrangling tasks.

The value of OData lies in its self-descriptive nature, which allows tools to introspect the data structures and types. Both GUI-driven tools like MS PowerBI and ruODK use this introspection to assist users in wrangling their own data.

The script-based approach of ruODK allows to automate the data extraction, transformation, and reporting pipeline, and therefore provide reproducible reporting.