The Participant Kit API uses standard REST practices. Resource-orientated URLs, returns JSON encoded responses and uses
standard HTTP response codes, authentication and verbs.
Authentication
All the API endpoints for Participant Kit require authentication. We allow the following methods
OAuth2 tokens
API keys (coming soon)
Oauth2 tokens
You can use the OAuth2 token by passing it in the header
Responses
We use conventional HTTP response codes to indicate the success or failure of an API request
2xx range indicates a success
4xx range indicates an an error that there was some missing provided information
5xx range means there is something wrong on our end
Common errors
400
This only usually happens on creating objects when a validation error is caused. Usually missing a required field
401
When an invalid key or token is provided
404
A 404 is caused when a missing resource is requested. For example when the resource with the requested id does not
exist
Projects
project objects represent the projects that are within your organisation.
The project object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
app_url
string
The URL for the project within the Participant Kit App
List all projects
Returns a list of all your organisations projects. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
Returns
A list object with a data property that contains an array of up to limit projects, using the
page as a starting point. Each entry in the array is a separate project object. If no more
project are available, the resulting array will be empty.
This request should never return an error.
Retrieve a project
Retrieves the details for a project. You only need to supply the unique project identifier.
Parameters
None
Returns
Returns a project object if a valid identifier was provided.
Panels
Panel objects represent the panels that are within your organisation.
The panel object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type. This will be "panel"
title
string
The title of the panel.
name
string
The internal name of the panel.
panellist_count
integer
The number of panellists subscribed to this panel.
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
List all panels
Returns a list of all your organisation's panels. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
Returns
A list object with a data property that contains an array of up to limit panels, using the
page as a starting point. Each entry in the array is a separate panel object. If no more
panel are available, the resulting array will be empty.
This request should never return an error.
Retrieve a panel
Retrieves the details for a panel. Supply the unique panel identifier (starting with pan_).
Parameters
None
Returns
Returns a panel object if a valid identifier was provided.
List panel panellists
Returns a list of subscribed panellists for a panel. Only includes panellists who have opted in and not opted out.
By default the response contains the panellist's id and the subscription lifecycle timestamps
(opted_in_at, confirmed_at, opted_out_at) — enough to sort by recency, filter
by confirmation state, or sync incrementally without holding personally identifying information. Use the
include parameter to opt in to additional fields.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
include
optional
Comma-separated list of additional data to include. pii adds the panellist's email
and name. properties adds a properties array containing the panellist's
custom field values scoped to this panel. Combine them as include=pii,properties.
Returns
A list object with a data property that contains an array of up to limit panellists, using the
page as a starting point.
When include=properties is set, each panellist gains a properties array of
{ field_id, value } entries. field_id is a stable identifier you can join to the
definitions returned by GET /v1/fields to interpret each value. Values for
multiple_options fields are returned as arrays; all other datatypes return a string.
This request should never return an error.
Studies
Study objects represent the research activities that are within your organisation.
The study object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type. This will be "study".
name
string
The name of the study.
start_date
date or null
The planned start date of the study.
end_date
date or null
The planned end date of the study.
tags
array of strings
Tag names applied to the study.
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
app_url
string
The URL for the study within the Participant Kit App
Create a study
Create a study within a project.
Parameters
project_id
required
The unique identifier for a project
name
required
The name for the new study
Returns
Returns the study object if the create succeeded. Returns an error if create parameters are invalid
List all studies
Returns a list of all your organisation's studies. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
Returns
A list object with a data property that contains an array of up to limit studys, using the
page as a starting point. Each entry in the array is a separate study object. If no more
study are available, the resulting array will be empty.
This request should never return an error.
Retrieve a study
Retrieves the details for a study. You only need to supply the unique study identifier.
Parameters
None
Returns
Returns a study object if a valid identifier was provided.
Delete a study
Delete a study. You only need to supply the unique study identifier.
Parameters
None
Returns
Returns an object with a deleted parameter on success. If the study id does not exist, this call
returns an error.
Fields
Field objects describe the custom fields configured for your organisation. Use them to interpret the
field_id values returned in panellist properties.
The field object
Attributes
id
string
Unique identifier for the field, prefixed with f_. Matches the field_id returned in
panellist properties.
object
string
Name of the object type. This will be "field".
name
string
Machine-friendly identifier for the field, for example date_of_birth.
title
string
Human-readable label for the field, for example Date of birth.
datatype
string
The shape of the values stored against this field. One of string, text,
telephone, number, single_option, multiple_options,
datetime, or date.
options
array, optional
The list of allowed values for the field. Only present when datatype is single_option
or multiple_options. Omitted for all other datatypes.
List all fields
Returns a list of all the custom field definitions configured for your organisation. Field definitions change
infrequently, so we recommend fetching this list once, caching it, and resolving field_id values as you
iterate panellists.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
Returns
A list object with a data property that contains an array of up to limit fields, using the
page as a starting point. Each entry in the array is a separate field object. If no more
field are available, the resulting array will be empty.
This request should never return an error.
Participants
Participant objects represent the participants that are within your organisation.
By default the participant payload contains only non-identifying fields. Use include=pii on any of the
read endpoints to also receive the participant's email and first_name.
The participant object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type. This will be "participant"
anonymous_id
string
A short, study-scoped identifier for the participant. Suitable for use as a human-friendly reference where
personally identifying information is not required.
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
app_url
string
The URL for the participant within the Participant Kit App
study
object
The study that the participant is taking part in.
first_name
string
The first name of the participant. Returned only when include=pii is requested.
email
string
The email of the participant. Returned only when include=pii is requested.
Create a participant
Creates a participant.
Parameters
name
required
The participants full name.
email
required
The participants email address. Used to send the consent remotely and for communications.
event_id
required
The unique identifier for the study that the participant is participating in.
include
optional
Pass pii to have the created participant's email and first_name returned in the response.
Returns
Returns the participant object if the create succeeded. Returns an error if create parameters are invalid
List all participants
Returns a list of all your organisation's participants. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
include
optional
Pass pii to include email and first_name on each participant.
Returns
A list object with a data property that contains an array of up to limit participants, using the
page as a starting point. Each entry in the array is a separate participant object. If no more
participant are available, the resulting array will be empty.
This request should never return an error.
Retrieve a participant
Retrieves the details for a participant. You only need to supply the unique participant identifier.
Parameters
include
optional
Pass pii to include the participant's email and first_name.
Returns
Returns a participant object if a valid identifier was provided.
Consents
Consent objects represent the consents that are within your organisation.
The consent object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type. This will be "consent"
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
consented_at
timestamp
When the consent was given or refused
status
string
If the consent was given. One of agreed or refused
permissions
array
A list of strings which are the permissions that the participant has given
participant
object
The participant the consent is attached to
List all consents
Returns a list of all your organisations consents. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
status
optional
Filter the consents by the status. One of agreed or refused
Returns
A list object with a data property that contains an array of up to limit consents, using the
page as a starting point. Each entry in the array is a separate consent object. If no more
consent are available, the resulting array will be empty.
This request should never return an error.
Retrieve a consent
Retrieves the details for a consent. You only need to supply the unique consent identifier.
Parameters
None
Returns
Returns a consent object if a valid identifier was provided.
Data Links
To associate data with a participant you can create a DataLink
The data-link object
Attributes
id
string
Unique identifier for the object
object
string
Name of the object type. This will be "data_link"
title
string
Name or title of the data
url
string
An accessible url to the data
reminder_on
timestamp
If set, when a reminder to delete the data will be sent
created_at
timestamp
When the object was created
updated_at
timestamp
When the object was last updated
recorded_at
timestamp
When the data was collected or created
Create a data link
Creates a data links.
Parameters
url
required
The url where the data is. Should be accessible to people in your organisation
recorded_at
required, date
The date the data was collected or created. This works with ISO 8601 format e.g. YYYY-MM-DD
participant_id
required
The unique identifier for the participant the data is being linked to
title
optional
The title or name of the data being linked
Returns
Returns the data link object if the create succeeded. Returns an error if create parameters are invalid
List all data links
Returns a list of all your organisations data links. Sorted by creation date.
Parameters
limit
optional
A limit on the number of objects returned. Defaults to 20 and is capped at 100.
page
optional
Combined with a limit or the default to be able to paginate through all the objects, the default is 1
Returns
A list object with a data property that contains an array of up to limit data links, using the
page as a starting point. Each entry in the array is a separate data link object. If no more
data link are available, the resulting array will be empty.
This request should never return an error.
Delete a data-link
This deletes or unlinks data from a participant
Parameters
None
Returns
Returns an object with a deleted parameter on success. If the data link id does not exist, this call
returns an error.