Prolific filterSets API

The filterSets API from Prolific — 5 operation(s) for filtersets.

Operations 8

GET /api/v1/filter-sets/ List all filter sets #
POST /api/v1/filter-sets/ Create filter set #
GET /api/v1/filter-sets/{id}/ Get filter set #
DELETE /api/v1/filter-sets/{id}/ Delete filter set #
PATCH /api/v1/filter-sets/{id}/ Update filter set #
POST /api/v1/filter-sets/{id}/clone/ Clone filter set #
POST /api/v1/filter-sets/{id}/lock/ Lock filter set for editing #
POST /api/v1/filter-sets/{id}/unlock/ Unlock filter set for editing #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/prolific-filtersets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

prolific-filtersets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference aiTaskBuilder Filter Sets API
  version: 1.0.0
servers:
- url: https://api.prolific.com
  description: Production
tags:
- name: filterSets
paths:
  /api/v1/filter-sets/:
    get:
      operationId: get-filter-sets
      summary: List all filter sets
      description: List of all filter sets in the specified workspace.
      tags:
      - filterSets
      parameters:
      - name: workspace_id
        in: query
        description: ID of the workspace to get filter sets for.
        required: false
        schema:
          type: string
      - name: organisation_id
        in: query
        description: ID of the organisation to get filter sets for.
        required: false
        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: List of filter sets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilterSetList'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      operationId: create-filter-set
      summary: Create filter set
      description: Create a filter set from a list of filters
      tags:
      - filterSets
      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: Filter set created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_CreateFilterSet_Response_201'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFilterSet'
  /api/v1/filter-sets/{id}/:
    get:
      operationId: get-filter-set
      summary: Get filter set
      description: Get details of a filter set.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        required: true
        schema:
          type: string
      - name: version_number
        in: query
        description: Allows you to specify a specific version of the filter set to retrieve.
        required: false
        schema:
          type: integer
      - 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: Filter set details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_GetFilterSet_Response_200'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      operationId: delete-filter-set
      summary: Delete filter set
      description: Delete a filter set.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        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 the filter set
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    patch:
      operationId: update-filter-set
      summary: Update filter set
      description: Update the details of a filter set.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        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: Filter set updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_UpdateFilterSet_Response_200'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFilterSet'
  /api/v1/filter-sets/{id}/clone/:
    post:
      operationId: clone-filter-set
      summary: Clone filter set
      description: Create a copy of a filter set.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        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:
        '201':
          description: Filter set cloned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_CloneFilterSet_Response_201'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                new_name:
                  type: string
                  description: A new name for the cloned filter set.
  /api/v1/filter-sets/{id}/lock/:
    post:
      operationId: lock-filter-set
      summary: Lock filter set for editing
      description: Lock the filter set for editing.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        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: Filter set locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_LockFilterSet_Response_200'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /api/v1/filter-sets/{id}/unlock/:
    post:
      operationId: unlock-filter-set
      summary: Unlock filter set for editing
      description: Unlock the filter set for editing.
      tags:
      - filterSets
      parameters:
      - name: id
        in: path
        description: ID of the filter set.
        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: Filter set locked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter_Sets_UnlockFilterSet_Response_200'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ApiV1FilterSetsIdGetResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsIdGetResponsesContentApplicationJsonSchemaFiltersItems
    RangeFilterWeightingsSelectedRange:
      type: object
      properties:
        lower:
          $ref: '#/components/schemas/RangeFilterWeightingsSelectedRangeLower'
        upper:
          $ref: '#/components/schemas/RangeFilterWeightingsSelectedRangeUpper'
      title: RangeFilterWeightingsSelectedRange
    RangeFilterSelectedRange:
      type: object
      properties:
        lower:
          $ref: '#/components/schemas/RangeFilterSelectedRangeLower'
          description: Your selected lower bound for the range.
        upper:
          $ref: '#/components/schemas/RangeFilterSelectedRangeUpper'
          description: Your selected upper bound for the range.
      description: 'This schema applies for filters of the `range` type, as defined in the [filter list response](\#tag/Filters/paths/~1api~1v1~1filters~1/get).


        A dictionary with two possible objects, ''lower'' and ''upper''. At least one must be present and a non-null value.


        The expected data type for these values is defined by the `range` filter''s `data_type` (see response linked above).


        If the data_type is a date, string format should be a parseable ISO8601 date string. Date values should be provided as a string in ISO 8601 format.


        Leaving a value as null will result in that bound being set to the lowest or highest possible value, depending on whether it is the upper or lower bound.'
      title: RangeFilterSelectedRange
    RangeFilterWeightingsSelectedRangeUpper:
      oneOf:
      - type: integer
      - type: string
      - type: number
        format: double
      title: RangeFilterWeightingsSelectedRangeUpper
    UpdateFilterSet:
      type: object
      properties:
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/UpdateFilterSetFiltersItems'
          description: List of all filters contained in the filter set.
      title: UpdateFilterSet
    ApiV1FilterSetsIdLockPostResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsIdLockPostResponsesContentApplicationJsonSchemaFiltersItems
    ErrorDetailDetail:
      oneOf:
      - type: string
      - type: array
        items:
          type: string
      - $ref: '#/components/schemas/ErrorDetailDetail2'
      description: Error detail
      title: ErrorDetailDetail
    ApiV1FilterSetsIdClonePostResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsIdClonePostResponsesContentApplicationJsonSchemaFiltersItems
    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
    RangeFilterWeightings:
      type: object
      properties:
        selected_range:
          $ref: '#/components/schemas/RangeFilterWeightingsSelectedRange'
        weighting:
          type: number
          format: double
      required:
      - selected_range
      - weighting
      title: RangeFilterWeightings
    FilterSet:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterSetFiltersItems'
          description: List of all filters contained in the filter set.
      title: FilterSet
    CompositeFilterFilterId:
      type: string
      enum:
      - and
      - or
      description: Composite filter group operator. Use `and` when every child filter must match, or `or` when at least one child filter must match.
      title: CompositeFilterFilterId
    ApiV1FilterSetsPostResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsPostResponsesContentApplicationJsonSchemaFiltersItems
    CompositeFilterSelectedFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: CompositeFilterSelectedFiltersItems
    Filter_Sets_CloneFilterSet_Response_201:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsIdClonePostResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_CloneFilterSet_Response_201
    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
    CompositeFilter:
      type: object
      properties:
        filter_id:
          $ref: '#/components/schemas/CompositeFilterFilterId'
          description: Composite filter group operator. Use `and` when every child filter must match, or `or` when at least one child filter must match.
        selected_filters:
          type: array
          items:
            $ref: '#/components/schemas/CompositeFilterSelectedFiltersItems'
          description: Child filters in this group. Children can be select filters, range filters, or supported nested composite groups.
      required:
      - filter_id
      - selected_filters
      title: CompositeFilter
    Filter_Sets_LockFilterSet_Response_200:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsIdLockPostResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_LockFilterSet_Response_200
    Filter_Sets_GetFilterSet_Response_200:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsIdGetResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_GetFilterSet_Response_200
    FilterSetFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: FilterSetFiltersItems
    UpdateFilterSetFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: UpdateFilterSetFiltersItems
    RangeFilterSelectedRangeUpper:
      oneOf:
      - type: integer
      - type: string
      - type: number
        format: double
      description: Your selected upper bound for the range.
      title: RangeFilterSelectedRangeUpper
    RangeFilterSelectedRangeLower:
      oneOf:
      - type: integer
      - type: string
      - type: number
        format: double
      description: Your selected lower bound for the range.
      title: RangeFilterSelectedRangeLower
    Filter_Sets_UpdateFilterSet_Response_200:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsIdPatchResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_UpdateFilterSet_Response_200
    ApiV1FilterSetsIdUnlockPostResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsIdUnlockPostResponsesContentApplicationJsonSchemaFiltersItems
    Error:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      required:
      - error
      title: Error
    Filter_Sets_CreateFilterSet_Response_201:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsPostResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_CreateFilterSet_Response_201
    RangeFilter:
      type: object
      properties:
        filter_id:
          type: string
          description: ID of the "range" type filter.
        selected_range:
          $ref: '#/components/schemas/RangeFilterSelectedRange'
          description: 'This schema applies for filters of the `range` type, as defined in the [filter list response](\#tag/Filters/paths/~1api~1v1~1filters~1/get).


            A dictionary with two possible objects, ''lower'' and ''upper''. At least one must be present and a non-null value.


            The expected data type for these values is defined by the `range` filter''s `data_type` (see response linked above).


            If the data_type is a date, string format should be a parseable ISO8601 date string. Date values should be provided as a string in ISO 8601 format.


            Leaving a value as null will result in that bound being set to the lowest or highest possible value, depending on whether it is the upper or lower bound.'
        weightings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RangeFilterWeightings'
          description: 'Ratios to control the distribution of participants across the selected values.


            Integers and exact quantities are valid inputs.'
      required:
      - filter_id
      - selected_range
      title: RangeFilter
    Filter_Sets_UnlockFilterSet_Response_200:
      type: object
      properties:
        id:
          type: string
          description: ID of the filter set.
        version:
          type: integer
          description: An incrementing integer indicating the version of the filter set.
        is_deleted:
          type: boolean
          description: Whether the filter set has been deleted.
        is_locked:
          type: boolean
          description: Whether the filter set has been locked.
        workspace_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type:
          - string
          - 'null'
          description: ID of the workspace where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ApiV1FilterSetsIdUnlockPostResponsesContentApplicationJsonSchemaFiltersItems'
          description: List of all filters contained in the filter set.
        eligible_participant_count:
          type: integer
          description: 'The number of participants who match the filter sets filters. Please note that if the number is

            lower than 25 the count will be obscured to prevent identification of participants.'
      title: Filter Sets_UnlockFilterSet_Response_200
    RangeFilterWeightingsSelectedRangeLower:
      oneOf:
      - type: integer
      - type: string
      - type: number
        format: double
      title: RangeFilterWeightingsSelectedRangeLower
    SelectFilter:
      type: object
      properties:
        filter_id:
          type: string
          description: ID of the "select" type filter.
        selected_values:
          type: array
          items:
            type: string
          description: 'This schema applies for filters of the `select` type, as defined in the [filter list response](\#tag/Filters/paths/~1api~1v1~1filters~1/get).


            Array of IDs matching the response IDs, from the `select` filter''s `choices` (see response linked above).


            String format should match the `data_type` of the `select` filter''s `choices` (see response linked above).'
        weightings:
          type: object
          additionalProperties:
            type: number
            format: double
          description: 'Ratios to control the distribution of participants across the selected values.


            Integer percentages, floats, and exact quantities are valid inputs.'
      required:
      - filter_id
      - selected_values
      title: SelectFilter
    CreateFilterSetFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: CreateFilterSetFiltersItems
    CreateFilterSet:
      type: object
      properties:
        workspace_id:
          type: string
          description: ID of the workspace where the filter set can be used.
        organisation_id:
          type: string
          description: ID of the organisation where the filter set can be used.
        name:
          type: string
          description: Name of the filter set.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/CreateFilterSetFiltersItems'
          description: List of all filters contained in the filter set.
      title: CreateFilterSet
    ApiV1FilterSetsIdPatchResponsesContentApplicationJsonSchemaFiltersItems:
      oneOf:
      - $ref: '#/components/schemas/SelectFilter'
      - $ref: '#/components/schemas/RangeFilter'
      - $ref: '#/components/schemas/CompositeFilter'
      title: ApiV1FilterSetsIdPatchResponsesContentApplicationJsonSchemaFiltersItems
    FilterSetList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/s

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/prolific/refs/heads/main/openapi/prolific-filtersets-api-openapi.yml