Request a Batch Export
Initiates an asynchronous export of all participant responses and uploaded files for a batch as a ZIP archive.
The export is generated out-of-band to handle large batches without hitting API timeout limits. The endpoint always returns 202 Accepted with an export_id — use it to poll GET /batches/{batch_id}/export/{export_id} for status.
Each request starts a fresh export job so you can retrieve newly submitted responses matching the same filter, unless one with the exact same filter is already generating, in which case its existing export_id is returned rather than starting a duplicate. A completed or failed export is never reused — sending POST again always starts a new job, giving you a snapshot of responses as of that request. Use GET /batches/{batch_id}/export to see every job you’ve already requested before starting another. Each batch can have at most 10 export jobs at a time (across all filters combined) — delete one to free up a slot if you hit that limit.
By default the export includes every response. Pass study_id and/or from/to to scope it to a subset — see the query parameters below. Terms combine as AND (e.g. study_id + from/to exports only that study’s responses within the date range). Two exports requested with different filters are tracked as separate jobs.
Only researchers with workspace access to the batch can request an export.
Authentication
The Prolific API uses API token to authenticate requests. You can create an API token directly from your settings.
Your API token does not have an expiry date and carries full permission, so be sure to keep them secure.
If your token is leaked, delete it and create a new one directly in the app.
In your requests add Authorization header with the value Token <your token>.
Path parameters
Query parameters
Only export responses with created_at on or after this ISO 8601 datetime (inclusive). Accepts an offset (e.g. +01:00) or Z.
Only export responses with created_at before this ISO 8601 datetime (exclusive). Must not be earlier than from.
Response
The export job ID. Use this with GET /batches/{batch_id}/export/{export_id} to poll for status.