There are several other R packages interacting with the ODK ecosystem, and/or OData.
Comparison of ODK related software packages (non-ODK core)
| 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 | Nov 2017 | |||||
| Website |
|
|
|
|||
| Test coverage |
|
❌ | In repo |
|
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 | 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.
Related tools beyond R
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.
Comparison of OData related R packages
| 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 | Dec 2016 | ❓ | |||
| Website |
|
|
|||
| Test coverage |
|
❌ |
|
❌ | ❌ |
| 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 | NA | 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.

