Prolific Researcher API
Mock the Prolific Researcher API with 78 endpoints without keys, sandboxes, or a live account.
[01]
About
Mock the Prolific Researcher API as a turnkey Mockzilla sim with 78 OpenAPI endpoints, realistic JSON payloads, no upstream signup or sandbox keys. Methods: 34x GET, 28x POST, 9x DELETE, 7x PATCH. Top resource groups: Studies, Surveys, Hooks, Participant Groups. Hit https://api.justmocks.com/prolific for the Mockzilla API Explorer landing and per-endpoint sample requests.
Endpoints
78 across 15 resource groups
Methods
GET 34 · POST 28 · PATCH 7 · DEL 9 none deprecated
OpenAPI
3.0.1 spec version 1.0
Source spec
248 KB · YAML
[02]
Endpoints
| GET |
/api/v1/surveys/{survey_id}
|
Get survey Get a single survey given an ID. Mocked via Mockzilla.
|
| DEL |
/api/v1/surveys/{survey_id}
|
Delete survey Delete a single Survey.
|
| GET |
/api/v1/surveys/{survey_id}/responses/{response_id}
|
Get response Get a single response for a survey.
|
| DEL |
/api/v1/surveys/{survey_id}/responses/{response_id}
|
Delete a response Delete a single Response.
|
| GET |
/api/v1/users/me
|
Retrieve a user Use this endpoint to test your token and retrieve the basic information of your account. Add an Authorization header with the value Token .
|
| GET |
/api/v1/eligibility-requirements
|
Get list of all requirements. This endpoint is deprecated - please use Filters instead. Get a list of all the requirements defined by Prolific that can be used to filter participants. Available as a Mockzilla mock endpoint.
|
| POST |
/api/v1/messages
|
Send a message Send a message to a participant or another researcher
|
| GET |
/api/v1/messages
|
Retrieve messages Get messages between you and another user or your messages with all users.
|
| GET |
/api/v1/messages/unread
|
Retrieve unread messages Get all unread messages. The messages you have sent are never returned, only messages you have received and not read. It does not mark those messages as read.
|
| POST |
/api/v1/messages/bulk
|
Send a message to multiple participants Send a message to multiple participants.
|
| GET |
/api/v1/projects/{project_id}/studies
|
List all studies in a project List all of your studies in a project. Mockzilla mock: no signup, no API key.
|
| GET |
/api/v1/studies
|
List all studies List all studies, with the option to filter by study status.
|
| POST |
/api/v1/studies
|
Create a draft study Create a draft study. Publishing a study is a two step process, first create a draft study then publish it.
|
| POST |
/api/v1/studies/{id}/transition
|
Publish a draft study Once the study is published, participants can partake in your experiment or survey. There are other status transitions available once the study is published: - PAUSE: Pause the study - START: Start a paused study - STOP: Stop a study completely, to make it active again you will need to increase the number of places To learn more about it check out help center
|
| GET |
/api/v1/studies/{id}
|
Retrieve a study Retrieve a study by id. If you are polling the API for updates to a study, consider using a Hook. We will call your endpoint when certain events occur on your study, such as new completed submissions or changes in status.
|
| PATCH |
/api/v1/studies/{id}
|
Update a study You can update any field for a draft study. Once the study has been published only the following fields can be updated with some restrictions: - internal_name: Internal name of the study, not shown to participants - total_available_places: Only increasing is allowed. A completed study will become active again and resume recruiting of participants. For more information, check the guide. Served by the Mockzilla mock runtime.
|
| DEL |
/api/v1/studies/{id}
|
Delete a study Published studies cannot be deleted, but you can delete draft studies.
|
| GET |
/api/v1/studies/{id}/submissions
|
List study submissions Returns basic information of the submissions, including the study id, participant id, status and start timestamp
|
| GET |
/api/v1/studies/{id}/export
|
Download demographic data This is an evolving feature and the exact content of such exports is subject to change, so use at your own risk. Download a snapshot of the participants' prescreening responses at the time that they took your study. Specify the optional ?method=EMAIL query parameter if you want this to be sent to your email. In addition to the responses to all prescreeners applied to the study (subject to change), you'll also have access to the following data: Submission id Participant id Submission status Started date-time Expressed in UTC ISO 8601 formatted Completed date-time Expressed in UTC ISO 8601 formatted Time taken (in seconds) Age Sex Participants were asked the following question: What is your sex, as recorded on legal/official documents? First language Current country of residence Nationality Country of birth Student status Employment status Reviewed at date-time Expressed in UTC ISO 8601 formatted * Completion code ('entered code') Learn more on Exporting Prolific demographic data.
|
| POST |
/api/v1/studies/{id}/clone
|
Duplicate a study Duplicating a study can save a lot of time and effort compared to creating a new study from scratch, since all of the information and data from the original study will be carried over to the new study. Additionally, duplicating a study can help ensure that the new study is set up consistently with the original, reducing the risk of errors or inconsistencies. To prevent repeat participation, a block list containing the original study will be added to the duplicated study's filters unless block_previous_participants is set to false in the request body.
|
| POST |
/api/v1/study-cost-calculator
|
Calculate the study cost Calculate the study cost, including VAT and fees. Mocked via Mockzilla.
|
| GET |
/api/v1/submissions
|
List submissions Returns basic information of the submissions, including the study id, participant id, status and start timestamp
|
| GET |
/api/v1/submissions/{id}
|
Retrieve a submission Returns the detailed information of a submission, including the study id, participant id, status and start timestamp
|
| POST |
/api/v1/submissions/{id}/transition
|
Approve or reject a submission Transition a submission to APPROVED or REJECTED. Once the status is changed, it can not be restored to its previous value. We strongly recommend that, when giving approval to a submission through the API, you first observe the submission.status.change event for a status transition to AWAITING_REVIEW before making the approval request. Our system is currently unable to process approvals before this transition. Note this endpoint is idempotent, so if you make the same request twice, the second request will be ignored.
|
| POST |
/api/v1/submissions/{id}/request-return
|
Request the participant who submitted the response to return their response This is an experimental feature that may be subject to change in the future. It offers researchers the ability to ask a participant to return a submission. The return reason must be provided in the request and can be any free text string. The Prolific UI allows users to select any of the following options: Didn't finish the study Encountered technical problems Withdrew consent Other ( uses the free text input) This constructs a message around the reasons provided so there is no need to provide additional text beyond the reasons.
|
| POST |
/api/v1/submissions/bulk-approve
|
Bulk approve submissions Bulk approve study submissions to pay participants after they have completed your survey or experiment. There are two variant payloads to this request. 1. You can supply a Study ID, and a list of participant IDs, or 2. You can provide a list of submission IDs. Available as a Mockzilla mock endpoint.
|
| POST |
/api/v1/submissions/bonus-payments
|
Set up bonuses Set up bonus payments to one or more participants/submissions in a study. You need the study id, the participant|submission ids and the request in CSV format. The csv_bonuses field needs to be structured in the format of either: - ,\n. - ,\n. Setting up a bonus payment does not actually pay them, to do so check /api/v1/bulk-bonus-payments/{id}/pay/ The submission and participant IDs need to have taken part in the study in order for this call to be successful. If not, you will get a "400" HTTP response back, which explains which IDs are incorrect.
|
| POST |
/api/v1/bulk-bonus-payments/{id}/pay
|
Pay bonuses Bonus payments are made asynchronously. The payment will be done in the following minutes and your balance will be updated accordingly.
|
| GET |
/api/v1/workspaces
|
Get all a user's workspaces Gets a list of all workspaces that the user is a member of.
|
| POST |
/api/v1/workspaces
|
Create a workspace Creates a new workspace and adds the user as a Workspace Admin.
|
| GET |
/api/v1/workspaces/{workspace_id}
|
Get workspace Gets a workspace's details. Mockzilla mock: no signup, no API key.
|
| PATCH |
/api/v1/workspaces/{workspace_id}
|
Update a workspace Updates a workspace's details.
|
| GET |
/api/v1/workspaces/{workspace_id}/balance
|
Get the balance of a workspace Provides details of the funds available in the workspace.
|
| GET |
/api/v1/workspaces/{workspace_id}/projects
|
Get all projects in a workspace Gets a list of all the projects within the workspace.
|
| POST |
/api/v1/workspaces/{workspace_id}/projects
|
Create a project Creates a new project within the workspace. When this project is created, it adds the user as a Project Editor.
|
| GET |
/api/v1/projects/{project_id}
|
Get project Gets a project's details. Served by the Mockzilla mock runtime.
|
| PATCH |
/api/v1/projects/{project_id}
|
Update a project Update a project's details
|
| GET |
/api/v1/hooks/event-types
|
List all subscribable event types You can subscribe to any of the event types defined in this response.
|
| GET |
/api/v1/hooks/secrets
|
List all secrets A view of all the secrets for the workspaces you belong to.
|
| POST |
/api/v1/hooks/secrets
|
Create/replace a secret Generate a secret for verifying the request signature header of the subscription payload. If a secret already exists, this call will delete the old secret and create a new one.
|
| GET |
/api/v1/hooks/subscriptions
|
List all subscriptions A view of all subscriptions you have created. Mocked via Mockzilla.
|
| POST |
/api/v1/hooks/subscriptions
|
Create a subscription Create a subscription for an event type. When an event is triggered in the Prolific system, the hook will automatically notify the specified target URL. Before creating a subscription, you must ensure that you have created a secret for your workspace.
|
| GET |
/api/v1/hooks/subscriptions/{subscription_id}
|
Retrieve a subscription Get a single subscription
|
| POST |
/api/v1/hooks/subscriptions/{subscription_id}
|
Confirm a subscription Confirm a subscription to an event type
|
| PATCH |
/api/v1/hooks/subscriptions/{subscription_id}
|
Update a subscription This allows you to update a subscription. For example you can temporarily disable a subscription if you wish.
|
| DEL |
/api/v1/hooks/subscriptions/{subscription_id}
|
Delete a subscription If you no longer require to be notified of a certain event type, you can delete a subscription. If you want to temporarily pause notifications, you can use the PATCH request documented. Available as a Mockzilla mock endpoint.
|
| GET |
/api/v1/hooks/subscriptions/{subscription_id}/events
|
Get subscription events Get all of the events that have triggered for the given subscription.
|
| GET |
/api/v1/surveys
|
Get all surveys Get all the surveys for a researcher.
|
| POST |
/api/v1/surveys
|
Create survey You can create a survey with either sections -> questions or just questions. This allows you to decide how much flexibility you want in your survey design. However, if you want to render the survey in the Prolific Application, you must use sections.
|
| GET |
/api/v1/surveys/{survey_id}/responses
|
Get all responses Get all the responses for a given Survey.
|
| POST |
/api/v1/surveys/{survey_id}/responses
|
Create response Create a Response for a survey. Mockzilla mock: no signup, no API key.
|
| DEL |
/api/v1/surveys/{survey_id}/responses
|
Delete all responses Delete all the responses for a given Survey.
|
| GET |
/api/v1/surveys/{survey_id}/responses/summary
|
Get summary of responses Get an aggregated summary of responses for a given survey.
|
| GET |
/api/v1/participant-groups
|
Get a list of all participant groups within a project or workspace
|
| POST |
/api/v1/participant-groups
|
Create a new participant group within a workspace
|
| GET |
/api/v1/participant-groups/{id}
|
Get a participant group
|
| PATCH |
/api/v1/participant-groups/{id}
|
Update a participant group
|
| DEL |
/api/v1/participant-groups/{id}
|
Delete a participant group
|
| GET |
/api/v1/participant-groups/{id}/participants
|
Get a list of all participants within a participant group
|
| POST |
/api/v1/participant-groups/{id}/participants
|
Add participants to a participant group Append participants to a participant group if they are not already members. If a participant is already a member of the group, they will be ignored.
|
| DEL |
/api/v1/participant-groups/{id}/participants
|
Remove participants from a participant group Remove specified participants from a participant group if they are members. If a participant is not a member of the group, they will be ignored.
|
| POST |
/api/v1/invitations
|
Create a new invitation Initiate a new invitation process for adding users to a Workspace or Project. This operation can be performed only by authenticated users who are admins for the specified workspace. Invitations will be sent to the email addresses provided in the request. Served by the Mockzilla mock runtime.
|
| GET |
/api/v1/filters
|
List all filters List all filters that can be applied to your filter sets or studies.
|
| GET |
/api/v1/filter-sets
|
List all filter sets List of all filter sets in the specified workspace.
|
| POST |
/api/v1/filter-sets
|
Create filter set Create a filter set from a list of filters
|
| GET |
/api/v1/filter-sets/{id}
|
Get filter set Get details of a filter set.
|
| PATCH |
/api/v1/filter-sets/{id}
|
Update filter set Update the details of a filter set. Mocked via Mockzilla.
|
| DEL |
/api/v1/filter-sets/{id}
|
Delete filter set Delete a filter set.
|
| POST |
/api/v1/filter-sets/{id}/clone
|
Clone filter set Create a copy of a filter set.
|
| POST |
/api/v1/filter-sets/{id}/lock
|
Lock filter set for editing Lock the filter set for editing.
|
| POST |
/api/v1/filter-sets/{id}/unlock
|
Unlock filter set for editing Unlock the filter set for editing.
|
| POST |
/api/v1/eligibility-count
|
Count participants Count how many participants meet all the given filters. Only participants that pass every one of the filters are counted. Zero means that there are less than 25 participants. We do not show lower numbers to protect the privacy of the participants. To see a list of filters that may be passed to this endpoint, see the documentation for filters. Available as a Mockzilla mock endpoint.
|
| GET |
/api/v1/study-collections/mutually-exclusive
|
List mutually exclusive study collections in a project List studies
|
| POST |
/api/v1/study-collections/mutually-exclusive
|
Create a mutually exclusive study collection. Create a mutually exclusive study collection. - Studies and study collections must be created separately and then added to the mutually exclusive study collection. - Both the studies and the study collection must be in the same project. - You can only add draft studies to a mutually exclusive study collection. - Adding studies which are already in one study collection to another study collection will remove the study from the original study collection.
|
| GET |
/api/v1/study-collections/mutually-exclusive/{id}
|
Get a mutually exclusive study collection Get a mutually exclusive study collection
|
| PATCH |
/api/v1/study-collections/mutually-exclusive/{id}
|
Update a mutually exclusive study collection Update a mutually exclusive study collection
|
| DEL |
/api/v1/study-collections/mutually-exclusive/{id}
|
Delete a mutually exclusive study collection Delete a mutually exclusive study collection. This will not delete the studies in the collection. - This can only be completed if the study collection is unpublished. - This will not delete the studies in the collection. Mockzilla mock: no signup, no API key.
|
| POST |
/api/v1/study-collections/mutually-exclusive/{id}/transition
|
Transition a mutually exclusive study collection Transition a mutually exclusive study collection. This is used to: - Publish a study collection - Cancel publish a study collection - Schedule publish a study collection - This can be done by setting the publish_at on the study collection at create or patch, then transitioning with the "SCHEDULE_PUBLISH" action - Or optionally the publish_at can be provided directly in the body of the transition request
|