← Back to all sparks
Q

qualtRics

ANALYTICS
Velocity0.0

Download ⬇️ Qualtrics survey data directly into R!

qualtRics moved its contact functions onto XM Directory days before the old endpoints died.

survey-dataapi-clientqualtricsropenscir-packageapi-migration
Current state
qualtRics is the R client for the Qualtrics v3 API — fetching survey responses, definitions, distributions, and contact lists into tidy data frames. Version 3.3.0 migrated all_mailinglists() and fetch_mailinglist() from the deprecated Research Core Contacts endpoints to XM Directory, ahead of Qualtrics retiring the old ones on June 30, 2026. Authentication and directory discovery are handled automatically, but the new endpoints return a different data shape, so column names changed. Before that, releases had been steady maintenance for two years, mostly around how survey response archives are unpacked.
Where it's heading
This package's roadmap is set by Qualtrics, not by its maintainers, and the release history reads as a sequence of accommodations — endpoint changes, retired APIs, and edge cases in exported files. The team's own recurring theme is reducing surprise: caching was removed from fetch_survey() in 3.2.0 so results are never stale, error handling was standardized on retry semantics, and column mappings were made inspectable via extract_colmap(). Feature additions, when they come, are new endpoints wrapped rather than new abstractions.
Prediction
With the Contacts migration complete, the next likely work is bringing the remaining Research Core-era functions onto XM Directory equivalents before Qualtrics retires more of the old surface.

Recent moves

  1. 1mo ago

    Mailing list functions migrated to the XM Directory API

    ⚡ SPARK

    Moves all_mailinglists() and fetch_mailinglist() onto XM Directory endpoints before Qualtrics retired the Research Core Contacts API on June 30, 2026. Calls keep working without code changes, but the returned columns are renamed and partly replaced, so any downstream code referencing the old names breaks on upgrade.

    View source ↗
  2. 11mo ago

    Zip extraction handles more special characters in survey titles

    Another revision to how CSV files are pulled from the Qualtrics response archive, covering more special characters in survey titles — the second attempt at this after 3.2.1. Tests updated for current vcr and webmockr.

    View source ↗
  3. 1y ago

    Fix for questions with both recoded values and variable naming

    Fixes a bug affecting survey questions carrying both recoded values and variable naming, and makes a first pass at special characters in survey titles during zip extraction. Narrow correctness work.

    View source ↗
  4. 1y ago

    Build and CI housekeeping alongside the 3.2.1 release

    A development tag carrying only repository hygiene — a revdep check added to Rbuildignore and mock server tests skipped on CI. No user-facing change.

    View source ↗
  5. 2y ago

    Survey response caching removed from fetch_survey()

    Deprecates save_dir and force_request so fetch_survey() always queries the API rather than reusing a cached download, with a new tmp_dir argument controlling where results land briefly on disk. Also stops mapping NA as a factor level for multiple choice questions under convert. A deliberate trade of speed for never returning stale data.

    View source ↗
  6. 3y ago

    Argument checking refactor and include_* NA fix

    Refactors argument and error checking across the package and fixes fetch_survey() when include_* arguments are NA. Internal cleanup with one visible bug fix.

    View source ↗