Projects
Below you’ll find interesting projects that programmatically interact with REDCap.
Libraries
The following libraries can assist communication with REDCap’s API. They can help make your development quicker and more robust. Unlike the code samples in a subsequent list, these libraries are reusable components (and not loose code that’s copied and pasted into each caller). Each library’s readme will have instructions how the deployed instances can be updated after the developer releases a new version.
| Project | Language | Description | Release |
|---|---|---|---|
| REDCap.jl | Julia | A Julia frontend for the REDCap API. REDCap.jl supports both importing and exporting records, as well as deletion from the REDCap Database. It also includes functions for surveys and report generation. Available under the MIT license. | |
| GoCap | Go | A golang based library for REDCap. It provides helpful abstractions for making requests to REDCap's REST API. The project is currently in development and not considered production-ready. | |
| PHPCap | PHP | Provides classes that simplify the use of the REDCap API using PHP. | Documentation |
| PyCap | Python | A minimal wrapper around the REDCap API to export & import data and files. It natively works with pandas. | Documentation |
| redcap | Ruby | A Ruby gem for interacting with the REDCap API. | |
| REDCap_API | JavaScript | To Access REDCap by API. | |
| redcapAPI | R | An R interface to REDCap, and is an actively developed fork of redcap, originally created by Jeffrey Horner. | Documentation |
| RedcapAPI | Ruby | An interface for REDCAP using Ruby. | |
| redcap-api | C# | REDCap API Library | |
| redcaphelper | Python | Wraps PyCap to facilitate uploads, backups as well as other tasks. | |
| redcap.js | JavaScript | simple, lightweight JavaScript client module for REDCap | Documentation |
| REDCapR | R | Encapsulates functions to streamline calls from R to the REDCap API. | Documentation |
Common Resources
The some developers of different libraries have collaborated to create resources not tied to any specific library. The finished products and the source code are available on GitHub, and any contributions or suggestions are welcomed.
| Resource | Description |
|---|---|
| redcap-tools | REDCap-Tools is a GitHub organization that fosters interesting projects built against REDCap. Developers and projects in this organization have no official ties to REDCap other than looking to push the data management capabilities provided by REDCap’s more advanced tools (namely the API and Data Entry Triggers) to their fullest potential. (Edit the web site source code here); view the repositories here. |
| Wiki API Examples | Several examples with loose code in bash, Java, Powershell, Matlab, VBA, and Stata. The REDCap wiki is typically accessible only to your instituion's REDCap admin. |
| Wiki API Space | List of questions and ideas posted to the forum community. |
| Wiki API Documentation | A replication of the documentation available at https://YOUR_REDCAP_INSTALLATION/redcap/api/help. Another way to click on the API Documentation link in the "Technical / Developer Tools" section of the menu (in the Control Center of your institution's instance). |
| API Troubleshooting Vignette | There are many links in the pipeline between your institution's REDCap server and the API user. When the end result is unsuccessful, this document should help narrow the location of the possible problem. The first two sections will be relevant to almost any language interacting with the API. (Edit source code here). |
| REDCap API 101 | A blog post about the API for users that are new to the concept, from the University of Washington ITHS. |
| External Modules Repository | The REDCap Repo is a centralized repository of curated External Modules that can be installed by a REDCap administrator. External Modules are add-on packages that extend functionality, either at the system level or project level. |
Code Samples and Snippets
These samples can be copied and pasted into a larger proram. Some of the sample’s code may have to be modified to work with your existing code.
| Project | Language | Description | Release |
|---|---|---|---|
| nef-c-sharp | C# | These functions push/pull DataTables. It can be used in an .aspx program, or in a windows desktop program, a DET program, etc. | |
| REDCap-API-and-Stata | Stata | Example Stata do-files for interacting with the REDCap API (using shell command and curl) | |
| redcap-test-datasets | text | Example datasets covering a range of scenarios to facilitate API tests. | |
| RedcapDotNetDETs | C# | Data entry triggers for REDCap written using .NET Web API. |
Remarks
- As a user choosing a resource, consider if you need one that’s been updated since REDCap’s version 6.0.0 (in Sept 2014), or since any other version that introduced API modifications and improvements.
- As a developer maintaining one of these resource, please tell us if you’d like changes to an entry below. Help us keep the info current by editing the “libraries”, “resources”, or “samples” yaml files (depending on which table above you’d like to modify), and submitting a PR. Alternatively, you can create a conventional GitHub issue and tell us how your project can be more accurately described.
Pupose of REDCap-Tools
(repeated from the home page.)
REDCap-Tools is an organization that fosters interesting projects built against REDCap. Developers and projects in this organization have no official ties to REDCap other than looking to push the data management capabilities provided by REDCap’s more advanced tools (namely the API and Data Entry Triggers) to their fullest potential. We hope to foster projects across a wide-range of programming languages. Our other goal is to connect users to the best existing libraries and resources for their needs.
If you have written a tool or application that helps improve reproducibility or accuracy in your a REDCap-based project, please consider housing it in this organization. This growing community of advanced REDCap end-users may find interest in your project and may want to help make it better. Also, if you move on in your career, placing your project under this organization will help to keep it growing and improving after you have moved on.
Notably REDCap-Tools takes no ownership over the projects hosted in this organization. That is left to the discretion of the author(s).
If you have a suggestion, please consider creating an issue for it in this repository (click the green ‘New Issue’ button in the top right).
Website Contributors
- @sburns
- Will Beasley, University of Oklahoma Health Sciences Center, BBMC
- Hao Zhu, Marcus Institute for Aging Research