Skip to main content

API Reference

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.

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

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.

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.

To associate data with a participant you can create a DataLink

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

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

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.

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.