Flywheel APIs and SDKs
Introduction
Flywheel provides a comprehensive set of APIs and SDKs that enable developers to integrate with and extend the Flywheel platform. These tools allow you to programmatically access and manipulate data, automate workflows, build custom applications, and integrate Flywheel with other systems in your research or clinical environment.
Available APIs and SDKs
Flywheel offers the following APIs and SDKs for developers:
REST API
Flywheel provides a full REST API that allows you to interact with all aspects of the Flywheel platform. The API is documented with Swagger and is available for each Flywheel instance at:
The REST API enables you to:
- Access and manipulate data in your Flywheel instance
- Manage users, groups, and permissions
- Create and run gears
- Query and search across your data
- Automate workflows and integrations
If you don't have a Flywheel instance, you can still browse the Flywheel API documentation here.
Python SDK
The Python SDK provides a powerful, Pythonic interface to the Flywheel platform. It's ideal for data scientists, researchers, and developers who want to integrate Flywheel with Python-based workflows and applications.
Key features:
- Comprehensive access to all Flywheel resources
- Simplified data access and manipulation
- Advanced search capabilities with FlyQL
- Support for running gears and managing workflows
- Integration with popular Python data science libraries
MATLAB SDK
The MATLAB SDK allows MATLAB users to interact with Flywheel directly from their MATLAB environment, making it easy to incorporate Flywheel data into MATLAB-based analysis workflows.
Key features:
- Access Flywheel data directly from MATLAB
- Download and upload data
- Query and search capabilities
- Integration with MATLAB analysis workflows
Flywheel Extension SDK
The Extension SDK enables developers to build custom applications that extend the Flywheel web interface, providing tailored functionality for specific workflows or use cases.
Key features:
- Create custom web applications within the Flywheel interface
- Access Flywheel data and services
- Build specialized visualization and analysis tools
- Customize the user experience for specific workflows
Integration Capabilities
Flywheel's APIs and SDKs enable a wide range of integration scenarios:
- Data Pipeline Automation: Automate data ingest, processing, and analysis workflows
- Custom Applications: Build specialized applications for your research or clinical needs
- Third-Party Integration: Connect Flywheel with other systems in your environment
- Batch Processing: Process large datasets efficiently with programmatic access
- Reporting and Analytics: Generate custom reports and analytics from your Flywheel data
Getting Started
To get started with Flywheel's APIs and SDKs:
- Obtain an API Key: Generate an API key from your Flywheel profile or ask your administrator to create one for you
- Choose Your SDK: Select the SDK that best fits your development environment and needs
- Install and Configure: Follow the installation and configuration instructions in the SDK documentation
- Explore Examples: Review example code and tutorials to understand common usage patterns
Jupyter Notebooks for Python SDK
Flywheel provides a collection of Jupyter notebooks that demonstrate various use cases for the Python SDK. These notebooks are available in the Flywheel Tutorials repository and cover a wide range of applications, including:
- Data and Image Curation - Notebooks demonstrating how to organize, clean, and prepare imaging data
- Search and Query - Examples of using FlyQL and advanced search capabilities
- Metadata Management - How to access, modify, and work with metadata across the Flywheel hierarchy
- Workflow Automation - Examples of automating data processing pipelines
- Analytics and Reporting - Creating reports and visualizations from Flywheel data
- Machine Learning Integration - Using Flywheel data with ML/AI frameworks
These notebooks provide practical examples and code snippets that you can adapt for your own projects. They are especially useful for researchers and developers who want to integrate Flywheel with their Python-based workflows.
Flywheel also offers a JupyterLab Workspace feature that allows you to run Jupyter notebooks directly within the Flywheel platform, with pre-configured access to the Python SDK and your Flywheel data.
Resources
- Python SDK Documentation
- MATLAB SDK Documentation
- Extension SDK Documentation
- Webinar: Intro to the Flywheel SDK
- Flywheel Forum - Community discussions and support