Introducing the R package robotoolbox

robotoolbox 1.5-RC1 is here!

First, I want to apologize for the long delay since the last update. I know many of you have been waiting patiently, and I truly appreciate your patience and continued support.

I’m happy to announce that robotoolbox 1.5-RC1 is now available for testing, with a CRAN release planned for early February.

What’s new?

Breaking changes:

  • Default pagination limit reduced from 30,000 to 1,000 to comply with the recent KoboToolbox API changes

  • Attachment filenames now include the attachment UID for uniqueness ({att_uid}_{filename})

New features:

  • Session-level caching for form metadata — significantly improves performance for repeated operations

  • Language switching without re-downloading data:

    • kobo_lang_set(data, asset, lang) — instantly switch variable and value labels to a different language

    • kobo_lang_get(data, asset) — detect the current language applied to your dataset

    • Works with both simple data.frame and complex dm objects (nested forms)

Bug fixes:

  • Fixed kobo_audit() and kobo_attachment_download() to handle API changes where the instance field was removed from _attachments

  • Fixed kobo_attachment_download() overwrite = FALSE check

  • Improved error handling for non-JSON API error responses

  • Various other fixes (see full changelog below)

Note for private server users: If your server allows higher limits, you can still use kobo_data(asset, page_size = 30000) for better performance on large datasets.

How to install

# Install development version from GitLab
remotes::install_gitlab("dickoa/robotoolbox")
pak::pkg_install("dickoa/robotoolbox")

Feedback welcome!

Please test it on your projects and report any issues on GitLab or GitHub. Your feedback before the CRAN submission will be invaluable.

Thank you all for your patience

1 Like