Prolific API oddities
Last updated 2023.07.08
Prolific doesn't publish API releases and release notes, so these could've already been fixed
Statuses
Prolific lacks several important statuses for Studies:
EXPIRED
status: we simulate it with adding a special suffix toStudy.internal_name
.STOPPED
status: whether Study has naturally completed, or it was manually stopped via Prolific UI, in both cases it will transition toAWAITING_REVIEW
status.FINISHED
status: allCOMPLETED
andAWAITING_REVIEW
studies in Prolific are not really completed - they can still be reactivated by increasing theirtotal_available_places
parameter.
You may also bump against some unobvious behaviours of Prolific Studies:
- We cannot stop Study via Prolific UI when
max_num_concurrent_units
is specified, because Mephisto will keep on launching additional Units (and thus reactivating the Study) every time Study falls intoAWAITING_REVIEW
status, until all created Units have been launched. - When we use
max_num_concurrent_units
, every time available places drop to zero for a moment, Prolific will automatically transition Study intoAWAITING_REVIEW
status, as if the Study has already finished. - Every time Prolific is updating status of a Study or Submission, it briefly puts that object
status to an undocumented
PROCESSING
status.
Studies/Submissions
- When Prolific Study is created with
ParticipantGroupEligibilityRequirement
, Prolific UI doesn't show it underStudy.eligibility_requirements
- it's only visible via an API request. (Andid
in that Eligibility Requirement will be not the EPG ID, but rather some internal ID from Prolific DB.) - After Study has been publiched, Prolific only allows updating
internal_name
andtotal_available_places
(all other fields are read-only, including Allow List and Block List). This is the reason we're using disposable EPGs for every Study. - Prolific only allows increasing (but not decreasing)
total_available_places
- The way to set Submission as completed is not by issuing an API call, but by redirecting a Participant in their browser to a page with a specific URL that includes a Study completion code.
- Prolific does not allow to specify custom Study completion code during creation of a Study, therefore we have to generate our own completion codes based on Study's ID and update it in Prolific when creating a Study.
Groups
- Prolific caches
eligible_participant_count
for Groups (so it always shows the initial value, despite any changes of Particpants in the Group) - Deletion of Participant Groups is soft on Prolific side, and their API response doesn't indicate that a Group has been soft-deleted (as if it's still active)