Prolific participantGroups API
The participantGroups API from Prolific — 3 operation(s) for participantgroups.
The participantGroups API from Prolific — 3 operation(s) for participantgroups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/prolific-participantgroups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference aiTaskBuilder Participant Groups API
version: 1.0.0
servers:
- url: https://api.prolific.com
description: Production
tags:
- name: participantGroups
paths:
/api/v1/participant-groups/:
get:
operationId: get-participant-groups
summary: Get a list of all participant groups within a project or workspace
tags:
- participantGroups
parameters:
- name: active
in: query
description: Filter by the active (not deleted) status of the participant group.
required: false
schema:
$ref: '#/components/schemas/ApiV1ParticipantGroupsGetParametersActive'
- name: filter
in: query
required: true
schema:
$ref: '#/components/schemas/ApiV1ParticipantGroupsGetParametersFilter'
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: Request successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupListResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: create-participant-group
summary: Create a new participant group within a workspace
tags:
- participantGroups
parameters:
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'201':
description: Participant group created
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
type: object
properties:
workspace_id:
type: string
description: The id of the workspace to create the participant group in. Either a workspace or organisation ID must be specified.
organisation_id:
type: string
description: The id of the organisation to create the participant group in. Either a workspace or organisation ID must be specified.
name:
type: string
description: The name of the participant group
description:
type: string
description: A description of the participant group
participant_ids:
type: array
items:
type: string
description: The ids of participants to be initially added to the group
required:
- name
/api/v1/participant-groups/{id}/:
get:
operationId: get-participant-group
summary: Get a participant group
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: Request successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
operationId: delete-participant-group
summary: Delete a participant group
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'204':
description: Deleted
content:
application/json:
schema:
type: object
properties: {}
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
patch:
operationId: update-participant-group
summary: Update a participant group
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: Request successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupUpdate'
/api/v1/participant-groups/{id}/participants/:
get:
operationId: get-participant-group-participants
summary: Get a list of all participants within a participant group
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group to get participants for
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: Request successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupMembershipListResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: add-to-participant-group
summary: Add participants to a participant group
description: '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.
'
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group to add the participant to
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: All participant(s) now in participant group
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupMembershipListResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantIDList'
delete:
operationId: remove-from-participant-group
summary: Remove participants from a participant group
description: '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.
'
tags:
- participantGroups
parameters:
- name: id
in: path
description: The id of the participant group to remove the participant(s) from
required: true
schema:
type: string
- name: Authorization
in: header
description: '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>`.'
required: true
schema:
type: string
responses:
'200':
description: All participant(s) now in participant group
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantGroupMembershipListResponse'
'400':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ParticipantIDList'
components:
schemas:
ParticipantGroupMembershipListResponse:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ParticipantGroupMembership'
title: ParticipantGroupMembershipListResponse
ParticipantGroupFeederStudiesItemsFeederCompletionCodesItems:
type: object
properties:
code:
type: string
description: The code that will modify the participants in this group.
code_type:
type: string
description: The label or code type given to this code within the context of the study.
action:
$ref: '#/components/schemas/ParticipantGroupFeederStudiesItemsFeederCompletionCodesItemsAction'
description: The action that will be taken when this code is used.
description: The code within this study that interacts with the participant group.
title: ParticipantGroupFeederStudiesItemsFeederCompletionCodesItems
ParticipantGroup:
type: object
properties:
id:
type: string
description: The id of the participant group
name:
type: string
description: The name of the participant group
project_id:
type:
- string
- 'null'
description: The id of the project the participant group belongs to
workspace_id:
type:
- string
- 'null'
description: The id of the workspace the participant group belongs to. A participant group can only belong to either a workspace or an organisation.
organisation_id:
type:
- string
- 'null'
description: The id of the organisation the participant group belongs to. A participant group can only belong to either a workspace or an organisation.
description:
type:
- string
- 'null'
description: The user-provided description of the participant group
participant_count:
type: integer
description: The number of participants in the participant group
is_deleted:
type: boolean
description: Whether the participant group has been deleted
feeder_studies:
type: array
items:
$ref: '#/components/schemas/ParticipantGroupFeederStudiesItems'
description: Details of all studies which are configured to modify the participants in this group through completion codes.
title: ParticipantGroup
ParticipantGroupMembership:
type: object
properties:
participant_id:
type: string
description: The id of the participant
datetime_created:
type: string
description: The date and time the participant was added to the Participant Group
title: ParticipantGroupMembership
ParticipantIDList:
type: object
properties:
participant_ids:
type: array
items:
type: string
title: ParticipantIDList
ApiV1ParticipantGroupsGetParametersFilter:
oneOf:
- $ref: '#/components/schemas/ApiV1ParticipantGroupsGetParametersFilter0'
- $ref: '#/components/schemas/ApiV1ParticipantGroupsGetParametersFilter1'
title: ApiV1ParticipantGroupsGetParametersFilter
ApiV1ParticipantGroupsGetParametersFilter1:
type: object
properties:
project_id:
type: string
description: The id of the project to get participant groups for
required:
- project_id
title: ApiV1ParticipantGroupsGetParametersFilter1
ParticipantGroupListResponse:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/ParticipantGroup'
title: ParticipantGroupListResponse
ParticipantGroupFeederStudiesItems:
type: object
properties:
id:
type: string
description: The id of the study.
name:
type: string
description: The name of the study.
internal_name:
type: string
description: The internal name of the study.
status:
type: string
description: The current status of the study.
feeder_completion_codes:
type: array
items:
$ref: '#/components/schemas/ParticipantGroupFeederStudiesItemsFeederCompletionCodesItems'
description: The completion codes which will modify the participants in this group.
title: ParticipantGroupFeederStudiesItems
ParticipantGroupFeederStudiesItemsFeederCompletionCodesItemsAction:
type: string
enum:
- ADD_TO_PARTICIPANT_GROUP
- REMOVE_FROM_PARTICIPANT_GROUP
description: The action that will be taken when this code is used.
title: ParticipantGroupFeederStudiesItemsFeederCompletionCodesItemsAction
ParticipantGroupUpdate:
type: object
properties:
name:
type: string
description: The name of the participant group
participant_ids:
type: array
items:
type: string
description: 'The ids of participants to be included in the group.
Note, this overwrites any existing participants in the group; use the participant group membership endpoints to [append](#tag/Participant-Groups/operation/AddToParticipantGroup) or [remove](#tag/Participant-Groups/operation/RemoveFromParticipantGroup) participants from the group.'
title: ParticipantGroupUpdate
ParticipantGroupResponse:
type: object
properties:
id:
type: string
description: The id of the participant group
name:
type: string
description: The name of the participant group
project_id:
type:
- string
- 'null'
description: The id of the project the participant group belongs to
workspace_id:
type:
- string
- 'null'
description: The id of the workspace the participant group belongs to. A participant group can only belong to either a workspace or an organisation.
organisation_id:
type:
- string
- 'null'
description: The id of the organisation the participant group belongs to. A participant group can only belong to either a workspace or an organisation.
description:
type:
- string
- 'null'
description: The user-provided description of the participant group
participant_count:
type: integer
description: The number of participants in the participant group
is_deleted:
type: boolean
description: Whether the participant group has been deleted
feeder_studies:
type: array
items:
$ref: '#/components/schemas/ParticipantGroupFeederStudiesItems'
description: Details of all studies which are configured to modify the participants in this group through completion codes.
title: ParticipantGroupResponse
ErrorDetailDetail:
oneOf:
- type: string
- type: array
items:
type: string
- $ref: '#/components/schemas/ErrorDetailDetail2'
description: Error detail
title: ErrorDetailDetail
ErrorDetailDetail2:
type: object
properties:
any_field:
type: array
items:
type: string
description: Name of the field with a validation error and as a value an array with the error descriptions
description: All fields with validation errors
title: ErrorDetailDetail2
ApiV1ParticipantGroupsGetParametersFilter0:
type: object
properties:
workspace_id:
type: string
description: The id of the workspace to get participant groups for
required:
- workspace_id
title: ApiV1ParticipantGroupsGetParametersFilter0
ErrorDetail:
type: object
properties:
status:
type: integer
description: Status code as in the http standards
error_code:
type: integer
description: Internal error code
title:
type: string
description: Error title
detail:
$ref: '#/components/schemas/ErrorDetailDetail'
description: Error detail
additional_information:
type: string
description: Optional extra information
traceback:
type: string
description: Optional debug information
interactive:
type: boolean
required:
- status
- error_code
- title
- detail
title: ErrorDetail
Error:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorDetail'
required:
- error
title: Error
ApiV1ParticipantGroupsGetParametersActive:
type: string
enum:
- 'true'
- 'false'
title: ApiV1ParticipantGroupsGetParametersActive
securitySchemes:
token:
type: apiKey
in: header
name: Authorization
description: '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>`.'