API Clients and Documentation
What Are API Clients?
An API client is a tool that lets you talk to Synapse using your computer’s “programming language” instead of clicking around in the web interface. Think of it like having a set of remote controls that can tell Synapse what to do—such as uploading, downloading, or organizing files—without you having to do each step manually.
Instead of pointing and clicking in the Synapse website, an API client lets you type commands (or run scripts) that Synapse understands. This is especially helpful when you need to repeat the same action many times or work with a large amount of data.
Why Use an API Client Instead of the Web Interface?
While the Synapse website is great for browsing projects and making quick changes, there are times when it’s not the most efficient or effective option. For example:
Reproducibility of Research
By using a Synapse client, you can write scripts that perform your analysis or data processing steps. Sharing these scripts with others allows them to reproduce your work exactly—using the same data, same steps, and same outputs—helping ensure scientific transparency and trust.Large-Scale File Transfers
If you need to upload or download hundreds—or even thousands—of files, doing it one-by-one in the website would be slow and error-prone. An API client can handle big batches automatically.Automation and Integration
If you want Synapse to work as part of a bigger process—such as feeding data directly into an analysis pipeline—an API client allows you to connect Synapse to other tools and systems seamlessly.
API Clients Available for Synapse
Learn how to install Synapse API clients here.
Learn how to manage stored login credentials here.
Below, find links to Python, R, command line, and REST API documentation.
Command Line Docs : Connect and interact with Synapse directly using the command line client
Python Docs : Interact with Synapse using the python client
R Docs : Use the R client to interact with Synapse from scripts or interactive R sessions
REST API Docs : Build your own client using the Synapse REST APIs
A note about the R client
We maintain the R client to support our R user community, recognizing R as a foundational language in many data workflows. That said, the R client is built on top of the Synapse Python client via the reticulate package. This design allows us to solve complex engineering problems—such as multi-threaded uploads/downloads and file caching—at the Python layer and reuse those solutions in R.
While we aim to provide a reliable R experience, the dependency on Python introduces installation nuances, especially around environment management and package versions. If you encounter issues, we recommend using the Python client directly, which is actively developed and more broadly used.
We appreciate your patience and continued feedback as we work to improve the user experience across both ecosystems.