Skip to navigation

Request a Batch Export

View as MarkdownOpen in Claude

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

AuthorizationToken

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

batch_idstringRequired

Query parameters

study_idstringOptional
Only export responses submitted under this Prolific Study ID.
fromdatetimeOptional

Only export responses with created_at on or after this ISO 8601 datetime (inclusive). Accepts an offset (e.g. +01:00) or Z.

todatetimeOptional

Only export responses with created_at before this ISO 8601 datetime (exclusive). Must not be earlier than from.

Response

Export generation started
statusenum
Allowed values:
export_idstringformat: "uuid"

The export job ID. Use this with GET /batches/{batch_id}/export/{export_id} to poll for status.

Errors

400
Bad Request Error
403
Forbidden Error
409
Conflict Error