Uploading submission feedback files

View as MarkdownOpen in Claude

This guide explains how to use the Submission Feedback Upload API to submit feedback files for your completed studies.

Why share feedback?

We are always keen to hear feedback on the data you collect through Prolific. We know that many customers run their own scripts, quality checks and downstream analysis once a study is complete; those assessments are some of the most valuable feedback we can receive. Sharing feedback helps us to improve data quality and the reliability of our participant pool.

This API gives you a simple, secure way to send that feedback to us in a variety of formats.

Overview

The Submission Feedback Upload API lets you upload feedback files in any schema for a pain-free experience. Uploading follows a secure two-step process:

  1. Request a pre-signed upload URL.
  2. Upload your file directly to the provided upload URL.

This approach enables secure and efficient file transfers while supporting a range of file formats for your research feedback, namely CSV, XLS, XLSX, JSON, TXT and PDF.

Prerequisites

  • A Prolific researcher account with API access.
  • Your API token.
  • The feedback file you wish to upload.

Step 1: Request an upload URL

To begin the upload process, request a secure upload URL by sending a GET request to the endpoint below.

$GET /api/v1/submissions/signals/upload-url/{filename}?workspace_id={id}
ParameterInDescription
filenamepathThe name of the file you want to upload, including its extension (e.g. participant_feedback.csv).
workspace_idqueryYour Prolific workspace ID.

Example request

$curl -X GET \
> -H "Authorization: Token YOUR_API_TOKEN" \
> "https://api.prolific.com/api/v1/submissions/signals/upload-url/study123_feedback.csv?workspace_id=6278acb09062db3b35bcb123"

Example response

1{
2 "expires_at": "2025-05-15T11:11:14.321Z",
3 "http_method": "PUT",
4 "upload_url": "https://submission-signals.s3.amazonaws.com/study123_feedback.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..."
5}

The response includes a temporary, pre-signed upload_url that you use in the next step.

Step 2: Upload your file

After receiving the upload URL, upload your file directly to it with an HTTP PUT request.

$curl -X PUT \
> --upload-file "/path/to/your/participant_feedback.csv" \
> "https://submission-signals.s3.amazonaws.com/study123_feedback.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=..."

For successful uploads, you’ll receive an HTTP 200 OK response with an empty body.

The PUT request must not include an Authorization header. The upload URL is already authenticated by its query-string signature; sending your API token as well will cause the upload to fail. Your API token is only needed for Step 1. Use the upload_url exactly as returned. Some API clients (e.g. Postman, Bruno) re-encode query parameters, which corrupts the signature and results in an error. If in doubt, upload with curl as shown above as it sends the URL verbatim.

The pre-signed upload_url is temporary — it is valid for 20 minutes from when it was issued. Upload your file before the expires_at time in the response, otherwise request a new URL. Note that expires_at is in UTC, and an expired URL returns 403 Access Denied.

Supported file formats

The API supports the following file formats:

  • CSV
  • Excel spreadsheets (XLS, XLSX)
  • JSON files
  • TXT files
  • PDF files

If you would like to upload your feedback file in a format that isn’t currently supported, please get in touch.

Best practices

  1. File naming - use descriptive and consistent file naming conventions.
  2. File size - there is a maximum file size limit of 5GB. For files approaching this limit, consider compressing them or splitting them into multiple smaller files where possible.
  3. Token security - keep your API token secure and never share it in public repositories.
  4. Retries - consider implementing retry logic with exponential backoff for transient failures (e.g. network timeouts) when uploading large files.

Support

If you encounter any issues or have questions about the Submission Feedback Upload API, please contact our support team.