# Prolific API for researchers API

> Prolific API for researchers API on Apizie: 77 endpoints (Get survey, Delete survey, Get response, Delete a response, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://www.apizie.tech/v1/ai:prolific/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `ai:prolific`
- Category: Artificial Intelligence
- Status: byok
- Source: https://www.prolific.com
- Page: https://www.apizie.tech/api/ai/prolific
- OpenAPI: https://www.apizie.tech/api/ai/prolific/openapi.json

Prolific helps dedicated research teams to collect the very highest-quality human-powered data - at scale - using our simple-to-use platform to target and manage participants from our diverse, vetted participant pool.…

## Endpoints

### Get survey
`GET https://www.apizie.tech/v1/ai:prolific/surveys-get-survey-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |

### Delete survey
`POST https://www.apizie.tech/v1/ai:prolific/surveys-delete-single-survey` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |

### Get response
`GET https://www.apizie.tech/v1/ai:prolific/surveys-get-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |
| response_id | string | yes |  |

### Delete a response
`POST https://www.apizie.tech/v1/ai:prolific/surveys-delete-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |
| response_id | string | yes |  |

### Retrieve a user
`GET https://www.apizie.tech/v1/ai:prolific/users-get-user` (byok)

### Retrieve messages
`GET https://www.apizie.tech/v1/ai:prolific/messages-get-messages` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| user_id | string | no | Another user ID, must be provided if no created_after date is provided. |
| created_after | string | no | Only fetch messages created after timestamp. Datetime in ISO8601 format. Must be provided if no user_id is provided. You can only fetch up… |

### Send a message
`POST https://www.apizie.tech/v1/ai:prolific/messages-send-new-message` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve unread messages
`GET https://www.apizie.tech/v1/ai:prolific/messages-get-unread` (byok)

### Send a message to multiple participants
`POST https://www.apizie.tech/v1/ai:prolific/messages-send-to-multiple-participants` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List all studies in a project
`GET https://www.apizie.tech/v1/ai:prolific/studies-list-in-project` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| project_id | string | yes | Project id |

### List all studies
`GET https://www.apizie.tech/v1/ai:prolific/studies-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| state | string | no | Filter studies by status. Accepts a string in the format "(active/published/...)", where "active" and "published" are example statuses. |

### Create a draft study
`POST https://www.apizie.tech/v1/ai:prolific/studies-create-draft-study` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Publish a draft study
`POST https://www.apizie.tech/v1/ai:prolific/studies-publish-draft-study` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |
| body | object | no | JSON request body |

### Retrieve a study
`GET https://www.apizie.tech/v1/ai:prolific/studies-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |

### Update a study
`POST https://www.apizie.tech/v1/ai:prolific/studies-update-study-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |
| body | object | no | JSON request body |

### Delete a study
`POST https://www.apizie.tech/v1/ai:prolific/studies-delete-study` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |

### List study submissions
`GET https://www.apizie.tech/v1/ai:prolific/studies-list-submissions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |

### Download demographic data
`GET https://www.apizie.tech/v1/ai:prolific/studies-download-demographic-data` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |
| method | string | no | Method |

### Duplicate a study
`POST https://www.apizie.tech/v1/ai:prolific/studies-duplicate-study` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Study id |
| body | object | no | JSON request body |

### Calculate the study cost
`POST https://www.apizie.tech/v1/ai:prolific/studies-calculate-study-cost-with-vat` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List submissions
`GET https://www.apizie.tech/v1/ai:prolific/submissions-list-basic-info` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| study | string | no | Optional filter by study ID. This is the ID we pass to the survey platform using %STUDY_ID% |

### Retrieve a submission
`GET https://www.apizie.tech/v1/ai:prolific/submissions-get-detail` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Submission id. This is the ID we pass to the survey platform using %SESSION_ID% |

### Approve or reject a submission
`POST https://www.apizie.tech/v1/ai:prolific/submissions-transition-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Submission id. This is the ID we pass to the survey platform using %SESSION_ID% |
| body | object | no | JSON request body |

### Request the participant who submitted the response to return their response
`POST https://www.apizie.tech/v1/ai:prolific/submissions-request-return` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The submission id |
| body | object | yes | JSON request body |

### Bulk approve submissions
`POST https://www.apizie.tech/v1/ai:prolific/submissions-bulk-approve` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Set up bonuses
`POST https://www.apizie.tech/v1/ai:prolific/bonuses-set-up-payments` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Pay bonuses
`POST https://www.apizie.tech/v1/ai:prolific/bonuses-make-payment` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | Bulk bonus payment id |

### Get all a user's workspaces
`GET https://www.apizie.tech/v1/ai:prolific/workspaces-get-all-user-workspaces` (byok)

### Create a workspace
`POST https://www.apizie.tech/v1/ai:prolific/workspaces-create-workspace-admin` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get workspace
`GET https://www.apizie.tech/v1/ai:prolific/workspaces-get-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes | Workspace id |

### Update a workspace
`POST https://www.apizie.tech/v1/ai:prolific/workspaces-update-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes | Workspace id |
| body | object | no | JSON request body |

### Get the balance of a workspace
`GET https://www.apizie.tech/v1/ai:prolific/workspaces-get-balance` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes | Workspace id |

### Get all projects in a workspace
`GET https://www.apizie.tech/v1/ai:prolific/projects-get-workspace-projects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes | Workspace id |

### Create a project
`POST https://www.apizie.tech/v1/ai:prolific/projects-create-new-project` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes | Workspace id |
| body | object | no | JSON request body |

### Get project
`GET https://www.apizie.tech/v1/ai:prolific/projects-get-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| project_id | string | yes | Project id |

### Update a project
`POST https://www.apizie.tech/v1/ai:prolific/projects-update-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| project_id | string | yes | Project id |
| body | object | no | JSON request body |

### List all subscribable event types
`GET https://www.apizie.tech/v1/ai:prolific/hooks-list-event-types` (byok)

### List all secrets
`GET https://www.apizie.tech/v1/ai:prolific/hooks-list-secrets` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | yes |  |

### Create/replace a secret
`POST https://www.apizie.tech/v1/ai:prolific/hooks-create-secret` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List all subscriptions
`GET https://www.apizie.tech/v1/ai:prolific/hooks-get-all-subscriptions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| is_enabled | boolean | no | A filter to only pull back enabled subscriptions. Default true. |
| workspace_id | string | no | The Workspace ID we want to get the subscriptions for. If not given, the subscriptions for all of your workspaces will be returned. |

### Create a subscription
`POST https://www.apizie.tech/v1/ai:prolific/hooks-create-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Retrieve a subscription
`GET https://www.apizie.tech/v1/ai:prolific/hooks-get-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id |

### Confirm a subscription
`POST https://www.apizie.tech/v1/ai:prolific/hooks-confirm-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id |
| body | object | no | JSON request body |

### Update a subscription
`POST https://www.apizie.tech/v1/ai:prolific/hooks-update-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id |
| body | object | no | JSON request body |

### Delete a subscription
`POST https://www.apizie.tech/v1/ai:prolific/hooks-delete-subscription` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id |

### Get subscription events
`GET https://www.apizie.tech/v1/ai:prolific/hooks-get-subscription-events` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id |
| offset | integer | no |  |
| limit | integer | no |  |
| status | string | no | Filter events by status. Accepts a single status or a JSON array of statuses as a string. |
| resource_id | string | no | Filter events by the ID of the resource for which the event was sent. |

### Get all surveys
`GET https://www.apizie.tech/v1/ai:prolific/surveys-get-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| researcher_id | string | yes |  |
| offset | integer | no |  |
| limit | integer | no |  |

### Create survey
`POST https://www.apizie.tech/v1/ai:prolific/surveys-create-or-update` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get all responses
`GET https://www.apizie.tech/v1/ai:prolific/surveys-get-all-responses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |

### Create response
`POST https://www.apizie.tech/v1/ai:prolific/surveys-create-response` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |
| body | object | yes | JSON request body |

### Delete all responses
`POST https://www.apizie.tech/v1/ai:prolific/surveys-delete-all-responses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |

### Get summary of responses
`GET https://www.apizie.tech/v1/ai:prolific/surveys-get-summary-responses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| survey_id | string | yes |  |

### Get a list of all participant groups within a project or workspace
`GET https://www.apizie.tech/v1/ai:prolific/participant-groups-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| active | string | no | Filter by the active (not deleted) status of the participant group. |
| filter | string | yes |  |

### Create a new participant group within a workspace
`POST https://www.apizie.tech/v1/ai:prolific/participant-groups-create-new-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get a participant group
`GET https://www.apizie.tech/v1/ai:prolific/participant-groups-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group |

### Update a participant group
`POST https://www.apizie.tech/v1/ai:prolific/participant-groups-update-group-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group |
| body | object | no | JSON request body |

### Delete a participant group
`POST https://www.apizie.tech/v1/ai:prolific/participant-groups-remove-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group |

### Get a list of all participants within a participant group
`GET https://www.apizie.tech/v1/ai:prolific/participant-groups-get-all-participants` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group to get participants for |

### Add participants to a participant group
`POST https://www.apizie.tech/v1/ai:prolific/participant-groups-add-participants-to-group` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group to add the participant to |
| body | object | yes | JSON request body |

### Remove participants from a participant group
`POST https://www.apizie.tech/v1/ai:prolific/participant-groups-remove-participants` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The id of the participant group to remove the participant(s) from |
| body | object | yes | JSON request body |

### Create a new invitation
`POST https://www.apizie.tech/v1/ai:prolific/invitations-initiate-process` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### List all filters
`GET https://www.apizie.tech/v1/ai:prolific/filters-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| detailed | string | no | Include extra information required to sort and categorise filters in the Prolific app. This is not required for API use. Default false. |
| workspace_id | string | no | The workspace ID for the workspace you are creating a study or filterset in. This is used to get contextual data such as previous studies… |

### List all filter sets
`GET https://www.apizie.tech/v1/ai:prolific/filter-sets-list-all` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| workspace_id | string | no | ID of the workspace to get filter sets for. |
| organisation_id | string | no | ID of the organisation to get filter sets for. |

### Create filter set
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-create-from-filters` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get filter set
`GET https://www.apizie.tech/v1/ai:prolific/filter-sets-get-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |
| version_number | integer | no | Allows you to specify a specific version of the filter set to retrieve. |

### Update filter set
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-update-details` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |
| body | object | no | JSON request body |

### Delete filter set
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-delete-set` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |

### Clone filter set
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-clone-filter-set` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |
| body | object | no | JSON request body |

### Lock filter set for editing
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-lock-for-editing` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |

### Unlock filter set for editing
`POST https://www.apizie.tech/v1/ai:prolific/filter-sets-unlock-for-editing` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | ID of the filter set. |

### Count participants
`POST https://www.apizie.tech/v1/ai:prolific/filters-count-participants-meeting-filters` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List mutually exclusive study collections in a project
`GET https://www.apizie.tech/v1/ai:prolific/study-collections-list-mutually-exclusive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| project_id | string | yes |  |

### Create a mutually exclusive study collection.
`POST https://www.apizie.tech/v1/ai:prolific/study-collections-create-mutually-exclusive-collection` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get a mutually exclusive study collection
`GET https://www.apizie.tech/v1/ai:prolific/study-collections-get-mutually-exclusive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |

### Update a mutually exclusive study collection
`POST https://www.apizie.tech/v1/ai:prolific/study-collections-update-mutually-exclusive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| body | object | no | JSON request body |

### Delete a mutually exclusive study collection
`POST https://www.apizie.tech/v1/ai:prolific/study-collections-delete-mutually-exclusive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |

### Transition a mutually exclusive study collection
`POST https://www.apizie.tech/v1/ai:prolific/study-collections-transition-mutually-exclusive` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes |  |
| body | object | no | JSON request body |

## Example
```
curl "https://www.apizie.tech/v1/ai:prolific/surveys-get-survey-by-id" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Prolific API for researchers API?
Create a free Apizie key, then send GET https://www.apizie.tech/v1/ai:prolific/surveys-get-survey-by-id with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Prolific API for researchers API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Prolific API for researchers itself also needs your own key from api.prolific.com.

### Can AI agents use the Prolific API for researchers API?
Yes. Add the Apizie MCP server (https://www.apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key ai:prolific.

### What is the status of the Prolific API for researchers API?
Needs your own provider key (bring your own key)
