Experiment data, straight to storage you control.

DataPipe is a free, open-source service that sends data from any online experiment to your own Google Drive, Dataverse, or Zenodo account as each participant finishes. No server to set up, nothing to download by hand.

DataPipe only ever asks your storage provider for permission to add files. You can disconnect it at any time.

Create an account Read the getting started guide

Built by the jsPsych team

// Save data with the jsPsychPipe plugin
const save_data = {
  type: jsPsychPipe,
  action: "save",
  experiment_id: "your_id",
  filename: filename,
  data_string: () =>
    jsPsych.data.get().csv()
};
The code is the same whichever storage provider you chose. Every endpoint and error code is in the API reference.

Three steps to start collecting data

1. Connect

Connect a storage provider — Google Drive, Dataverse, or Zenodo — to your DataPipe account.

2. Create

Create a DataPipe experiment, then add a few lines of code to the experiment your participants run so it sends data to DataPipe.

3. Collect

Enable data collection and run your experiment. Each participant's data lands in your Drive folder, Dataverse dataset, or Zenodo deposition as they finish.

What DataPipe does

Born-open data collection

Born-open means each participant's data is already in your own storage the moment it is collected, instead of being uploaded months later when the paper is written. The reasoning behind that is set out in the DataPipe paper in Behavior Research Methods. If you use DataPipe in your research, please cite it.

CSV, JSON, and media files

Send text data as CSV or JSON, and recordings — audio, video, images — as base64 strings. DataPipe decodes each string and saves the original file alongside the rest of your data.

Built-in safeguards

Data validation checks that every submission is well-formed JSON or CSV and carries the fields you require; anything else is rejected before it reaches your storage. A session limit caps how many files DataPipe will accept.

Psych-DS metadata

Turn on metadata and DataPipe writes a dataset_description.json alongside your data — describing the dataset and every variable in it in the Psych-DS format, a standard layout others can read and reuse — and keeps it up to date after each session.

Set up your first experiment

Connect a storage provider, create an experiment, and add a few lines of code. The getting started guide walks through all of it, end to end.

Create an account

The documentation covers what DataPipe stores, what it costs to run, and what happens when an upload fails.

Already collecting on OSF? OSF is shutting down its projects feature. DataPipe will stop writing to OSF after November 16, 2026. Data already there stays in your OSF account, and DataPipe never removes it. See how to move to another provider.

Created by the developers of jsPsych ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Test environment. Data sent here is not preserved. Do not sign in with production credentials.