> ## Documentation Index
> Fetch the complete documentation index at: https://developers.respondent.io/llms.txt
> Use this file to discover all available pages before exploring further.

> Duplicate an existing project as a new draft, including its screener questions and targeting configuration. Useful for running follow-up studies with similar criteria.

# Copy a project



## OpenAPI

````yaml post /v1/projects/{projectId}/copy
openapi: 3.0.0
info:
  title: Partner API
  description: Public API for partner integrations
  version: '1.0'
  contact: {}
servers:
  - url: https://api-staging.respondent.io
security: []
tags: []
paths:
  /v1/projects/{projectId}/copy:
    post:
      tags:
        - projects
      summary: Copy a project
      description: Copy a Project
      operationId: ProjectsController_copy
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
        - name: x-api-secret
          in: header
          required: true
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
components:
  schemas:
    Project:
      type: object
      properties:
        createdAt:
          type: string
        updatedAt:
          type: string
        publicTitle:
          type: string
          description: >-
            Project Title.

            This is visible to Respondents, do not mention any incentive amount
            as you may change it during your project.
        publicInternalName:
          type: string
          description: |-
            Internal Project Name.
            This is visible only to your organization.
            Character Limit: Min 3 and Max 50.
        publicDescription:
          type: string
          description: >-
            Required when publishing a project.

            This is visible to Respondents.

            A short description of the project visible to participants. This
            should clearly outline the purpose, requirements, and expectations
            for participation.

            Character Limit: Max 800.
        organizationId:
          type: string
          format: ObjectId
        teamId:
          type: string
          format: ObjectId
        projectStatus:
          $ref: '#/components/schemas/ProjectStatus'
        projectRecruitingStatus:
          $ref: '#/components/schemas/ProjectRecruitingStatus'
        targetMarketType:
          $ref: '#/components/schemas/AudienceTypes'
        typeOfResearch:
          $ref: '#/components/schemas/ResearchTypes'
        targetResearchMethodology:
          $ref: '#/components/schemas/KindOfResearch'
        unmoderatedStudyOrSurvey:
          description: For Unmoderated Studies and Surveys only.
          allOf:
            - $ref: '#/components/schemas/UnmoderatedStudyOrSurvey'
        participantTimeRequiredMinutes:
          type: number
        incentiveAmount:
          type: number
          description: >-
            Dollars ranging: Min 5 and Max 1000.

            Pro tip: Set your incentive at or above $2 per minute (B2C) or $3
            per minute (B2B) to attract quality participants faster.

            More tips to pick the right incentive:
            https://help.respondent.io/en/articles/5471087-what-is-the-best-incentive-for-my-research-project
        targetNumberOfParticipants:
          type: number
          description: >-
            Number of Participants

            We will recruit up to 3 times your target number of qualified
            participants.

            Number Limit: Min 1 and Max 500.
        targetCountry:
          $ref: '#/components/schemas/ProjectCountryCode'
        targetCountries:
          type: array
          items:
            $ref: '#/components/schemas/ProjectCountryCode'
        targetCities:
          type: array
          items:
            $ref: '#/components/schemas/ProjectCities'
        targetJobFunctions:
          type: array
          items:
            $ref: '#/components/schemas/JobFunction'
        targetCompanySize:
          type: array
          items:
            $ref: '#/components/schemas/CompanySize'
        targetLocationRespondentInPerson:
          description: >-
            Required for In-Person projects only.

            Please provide the full address (including city & state if
            applicable) where the project will be conducted.
          allOf:
            - $ref: '#/components/schemas/ProjectLocationInPerson'
        targetHouseholdIncome:
          type: array
          items:
            $ref: '#/components/schemas/HouseholdIncome'
        targetGenders:
          $ref: '#/components/schemas/Gender'
        targetEducation:
          type: array
          items:
            $ref: '#/components/schemas/EducationLevel'
        targetEthnicities:
          type: array
          items:
            $ref: '#/components/schemas/Ethnicities'
        targetAgeGroups:
          type: array
          items:
            $ref: '#/components/schemas/AgeGroup'
        screenerQuestions:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestion'
        inviteSurveyLink:
          type: string
        closedDetails:
          $ref: '#/components/schemas/ProjectClosedDetails'
        closed:
          type: boolean
          description: 'Use projectStatus: ''CLOSED'''
          deprecated: true
        closedMessage:
          type: string
          description: Use closedDetails.closedMessage.
          deprecated: true
        closedOnDate:
          format: date-time
          type: string
          description: Use closedDetails.closedOnDate.
          deprecated: true
        closedByUserId:
          type: string
          description: Use closedDetails.closedByUserId.
          deprecated: true
        ndaDetails:
          $ref: '#/components/schemas/NdaDetails'
        ndaType:
          $ref: '#/components/schemas/NdaTypeDeprecated'
        ndaFileUrl:
          type: string
          nullable: true
          description: Use ndaDetails.ndaFileUrl
          deprecated: true
        ndaLink:
          type: string
          nullable: true
          description: Use ndaDetails.ndaLink.
          deprecated: true
        filterPastParticipation:
          description: >-
            - If researcher wants to filter out participants who have
            participated in past projects.

            - Past Participation logic is used at Researcher level based on
            external reseacher id.

            - The participant must have been paid for a project to count as a
            past participant.

            - Past participation filtering is available within 4 hours of a
            payout being made, NOT immediately after payment.
          allOf:
            - $ref: '#/components/schemas/PastParticipation'
        externalResearcher:
          description: >-
            Required for all projects to identify your researcher with
            Respondent to differentiate from other researchers recruiting
            through your platform.
          allOf:
            - $ref: '#/components/schemas/ExternalResearcher'
        seniority:
          type: array
          items:
            $ref: '#/components/schemas/SeniorityLevel'
        publishedAt:
          format: date-time
          type: string
        automations:
          description: >-
            - Autopay is used to automatically pay participants after they
            complete a project.
              - If not provided, defaults to `true`.
            - Autoinvite is used to automatically invite participants to a
            project if they qualify after completing the screener.
              - Only available when `targetResearchMethodology` is one of: [`unmoderatedStudy`, `survey`].
              - If not provided, defaults to `false`.
          allOf:
            - $ref: '#/components/schemas/Automation'
        keyQualifiers:
          type: array
          items:
            $ref: '#/components/schemas/KeyQualifier'
        advancedTargeting:
          description: >-
            Flat advanced-targeting attribute map set on this project
            (relationship

            status, languages, devices, products & services, professional and
            shopping

            preferences, …). Present only when the requesting organisation has
            the

            `advanced-targeting-attributes` feature flag enabled. All advanced

            attributes appear identically on B2C and B2B projects.
          allOf:
            - $ref: '#/components/schemas/AdvancedTargeting'
        completionUrl:
          type: string
          nullable: true
          description: >-
            Researchers can provide participants with this link at the
            conclusion of their survey or study, enabling them to self-report
            task completion.

            Available for projects where the targetResearchMethodology is either
            unmoderatedStudy or survey.
        targetProfessionalIndustries:
          description: |-
            Required for Industry professionals (B2B) projects
            Array: Min 1.
          type: array
          items:
            $ref: '#/components/schemas/SimpleIndustry'
        targetJobTitles:
          description: |-
            Available for Industry professionals (B2B) projects.
            Array: Max 30.
          type: array
          items:
            $ref: '#/components/schemas/SimpleJobTitle'
        targetProjectTopics:
          description: >-
            Required for General Population (B2C) projects only

            Tagging your projects with topics will better help match your
            general population project with participants that have indicated
            interest in these topics.

            Array: Min 1 and Max 2.
          type: array
          items:
            $ref: '#/components/schemas/SimpleTopic'
        targetAudienceSkills:
          description: >-
            Array: Min 0 and Max 25.

            Select skills, knowledge areas, tools and/or certifications you
            would like to target.
          type: array
          items:
            $ref: '#/components/schemas/Skill'
        id:
          type: string
      required:
        - createdAt
        - publicTitle
        - publicInternalName
        - projectStatus
        - projectRecruitingStatus
        - targetMarketType
        - typeOfResearch
        - targetResearchMethodology
        - participantTimeRequiredMinutes
        - incentiveAmount
        - targetNumberOfParticipants
        - externalResearcher
        - id
    ProjectStatus:
      type: string
      enum:
        - DRAFT
        - PAID
        - ARCHIVED
        - CLOSED
    ProjectRecruitingStatus:
      type: string
      enum:
        - RECRUITING
        - RECRUITED
        - PAUSED
    AudienceTypes:
      type: string
      description: >-
        Audience type to be targeted for this project. Example values: Industry
        professionals (B2B) or General Population (B2C)
      enum:
        - b2b
        - b2c
    ResearchTypes:
      type: string
      description: Research type for this project, if it is in-person or remote
      enum:
        - inPerson
        - remote
    KindOfResearch:
      type: string
      description: >-
        Kind of research to be conducted for this project. [Details
        here](https://help.respondent.io/en/articles/5489302-research-method-and-types-of-research-projects).

        If `typeOfResearch == inPerson` &rarr; allowed values are: [`oneOnOne`,
        `focusGroup`, `inRespondentHome`, `inRespondentOffice`]

        If `typeOfResearch == remote` &rarr; allowed values are: [`oneOnOne`,
        `focusGroup`, `unmoderatedStudy`, `survey`, `diaryStudy`]
      enum:
        - oneOnOne
        - focusGroup
        - inRespondentHome
        - inRespondentOffice
        - unmoderatedStudy
        - survey
        - diaryStudy
    UnmoderatedStudyOrSurvey:
      type: object
      properties:
        remoteCommunicationDetails:
          type: string
          description: |-
            Custom url for the study, to be sent in the invitation .
            Can be updated when inviting the participant.
        specialInstructions:
          type: string
          description: |-
            Special instructions for the study, to be sent in the invitation.
            Can be updated when inviting the participant.
            Character limit: Max 2000.
    ProjectCountryCode:
      type: string
      enum:
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BA
        - BW
        - BV
        - BR
        - VG
        - IO
        - BN
        - BG
        - BF
        - BI
        - CV
        - CM
        - CA
        - KY
        - CF
        - TD
        - CL
        - CX
        - CC
        - CO
        - KM
        - CG
        - CK
        - CR
        - HR
        - CU
        - CW
        - CY
        - CZ
        - CI
        - CD
        - DK
        - DJ
        - DM
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - SZ
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - LA
        - LV
        - LB
        - LR
        - LY
        - LI
        - LT
        - LU
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NU
        - NF
        - KP
        - MK
        - MP
        - 'NO'
        - OM
        - PW
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RO
        - RW
        - RE
        - SH
        - KN
        - LC
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - RS
        - SC
        - SL
        - SG
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - KR
        - ES
        - LK
        - SR
        - SJ
        - SE
        - CH
        - TZ
        - TW
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - VI
        - UG
        - AE
        - GB
        - UM
        - US
        - UY
        - VU
        - VE
        - VN
        - WF
        - EH
        - ZM
        - ZW
        - all
    ProjectCities:
      type: object
      properties:
        location:
          $ref: '#/components/schemas/Location'
      required:
        - location
    JobFunction:
      type: string
      description: Available for Industry professionals (B2B) projects
      enum:
        - accountingAuditing
        - administrative
        - advertising
        - analyst
        - artCreative
        - businessDevelopment
        - consulting
        - customerService
        - distribution
        - design
        - education
        - finance
        - generalBusiness
        - healthcareProvider
        - humanResources
        - informationTechnology
        - legal
        - management
        - manufacturing
        - marketing
        - other
        - publicRelations
        - purchasing
        - productManagement
        - projectManagement
        - production
        - qualityAssurance
        - research
        - sales
        - science
        - strategyPlanning
        - supplyChain
        - training
        - writingEditing
    CompanySize:
      type: string
      enum:
        - selfemployed
        - 1-10
        - 11-50
        - 51-200
        - 201-500
        - 501-1000
        - 1001-5000
        - 5001-10000
        - 10000+
        - all
    ProjectLocationInPerson:
      type: object
      properties:
        id:
          type: string
        address1:
          type: string
        zipcode:
          type: string
        city:
          type: string
        region:
          type: string
        state:
          type: string
        country:
          $ref: '#/components/schemas/ProjectCountryCode'
        formattedAddress:
          type: string
        latitude:
          type: number
        longitude:
          type: number
      required:
        - address1
        - city
        - country
        - formattedAddress
        - latitude
        - longitude
    HouseholdIncome:
      type: string
      enum:
        - <30000
        - 30000-39999
        - 40000-59999
        - 60000-79999
        - 80000-99999
        - 100000-149999
        - 150000-199999
        - 200000+
        - all
        - all
    Gender:
      type: string
      enum:
        - male
        - female
        - other
        - nonbinary
        - transmale
        - transfemale
        - prefernottoanswer
        - N/A
    EducationLevel:
      type: string
      enum:
        - somehighschool
        - highschoolgraduate
        - somecollegenodegree
        - tradetechnicalvocationaltraining
        - associatedegree
        - bachelordegree
        - masterdegree
        - doctoratedegree
        - N/A
    Ethnicities:
      type: string
      enum:
        - americanindianalaskannative
        - hispaniclatino
        - blackorafricanamerican
        - asianpacificislander
        - whitecaucasian
        - middleeastern
        - multipleethnicity
        - prefernotdisclose
        - N/A
    AgeGroup:
      type: string
      enum:
        - 18-20
        - 21-29
        - 30-39
        - 40-54
        - 55+
        - N/A
    ScreenerQuestion:
      type: object
      properties:
        createdAt:
          type: string
        updatedAt:
          type: string
        questionType:
          $ref: '#/components/schemas/QuestionType'
        uid:
          type: string
        text:
          type: string
        answers:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionAnswer'
        isRequired:
          type: boolean
        skipLogic:
          type: boolean
        includeOtherOption:
          type: boolean
        isEnd:
          type: boolean
        logic:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogic'
        minValue:
          type: number
        maxValue:
          type: number
        step:
          type: number
        order:
          type: number
        rankRule:
          $ref: '#/components/schemas/ScreenerQuestionRankRule'
        randomizeOrder:
          type: boolean
        matrixRows:
          type: array
          items:
            $ref: '#/components/schemas/ScreenerQuestionMatrixRow'
        matrixMatchType:
          $ref: '#/components/schemas/MatrixMatchType'
        warnings:
          type: array
          items:
            type: string
        id:
          type: string
      required:
        - createdAt
        - text
        - minValue
        - maxValue
        - step
        - id
    ProjectClosedDetails:
      type: object
      properties:
        closed:
          type: boolean
        closedMessage:
          type: string
        closedOnDate:
          format: date-time
          type: string
        closedByUserId:
          type: string
    NdaDetails:
      type: object
      properties:
        ndaType:
          $ref: '#/components/schemas/NdaType'
        ndaLink:
          type: string
          nullable: true
        ndaFileUrl:
          type: string
          nullable: true
    NdaTypeDeprecated:
      type: string
      description: Use ndaDetails.ndaType.
      deprecated: true
      default: none
      enum:
        - none
        - file
        - link
    PastParticipation:
      type: object
      properties:
        hasNeverParticipated:
          type: boolean
          description: >-
            If true &rarr; only include participants who have never participated
            in a project with the researcher.

            If false &rarr; only include participants who have not participated
            in a project with the researcher in the past `months` months.
        since:
          format: date-time
          type: string
          description: >-
            It's autocalculated based on the `hasNeverParticipated` / `months`
            entered and displays in the API response
        months:
          $ref: '#/components/schemas/PastParticipationMonths'
      required:
        - hasNeverParticipated
    ExternalResearcher:
      type: object
      properties:
        researcherId:
          type: string
          description: >-
            A unique researcher ID provided by you, used to associate and filter
            projects.
        researcherName:
          type: string
          description: >-
            To be used when sending messages or emails to the respondent. Full
            name not required.
        teamId:
          type: string
          description: >-
            Optional additional filtering. This researcher's internal teamId
            from your organization.
        companyName:
          type: string
        companyId:
          type: string
          description: >-
            Optional additional filtering. This researcher's internal companyId
            from your organization.
        bookingUrl:
          type: string
          description: >-
            Link to book a meeting with the researcher. Required if
            targetResearchMethodology of project is oneOnOne or focusGroup.
      required:
        - researcherId
    SeniorityLevel:
      type: string
      enum:
        - unpaid
        - student
        - training
        - entrylevel
        - senior
        - manager
        - director
        - chiefofficer
        - partner
        - vicepresident
    Automation:
      type: object
      properties:
        autopay:
          type: boolean
        autoinvite:
          type: boolean
      required:
        - autopay
    KeyQualifier:
      type: string
      description: >-
        Converts signals into required match filters. [Details
        here](https://developers.respondent.io/docs/targeting-audiences-effectively).
      enum:
        - targetHouseholdIncome
        - targetProfessionalIndustries
        - targetCompanySize
        - targetProjectTopics
        - targetAudienceSkills
        - relationshipStatus
        - languages
        - numberOfChildren
        - numberOfChildrenLiveAtHome
        - childrenBirthYears
        - livingSituation
        - pets
        - homeOwner
        - nationality
        - militaryServiceStatus
        - employmentStatuses
        - cloudPlatforms
        - codingAITools
        - designPrototypingTools
        - productivitySoftware
        - streamingServices
        - foodDeliveryServices
        - onlineBankingTools
        - onlineLearningPlatforms
        - onlineMarketplacePlatforms
        - onlineTravelBooking
        - smartHomeDevices
        - socialNetworkPlatforms
        - vehicleBrands
        - healthWellnessApps
        - onlineShoppingFrequency
    AdvancedTargeting:
      type: object
      properties:
        relationshipStatus:
          $ref: '#/components/schemas/RelationshipStatus'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/ParticipantLanguage'
        numberOfChildren:
          type: integer
          minimum: 0
        numberOfChildrenLiveAtHome:
          type: integer
          minimum: 0
        childrenBirthYears:
          type: array
          items:
            type: string
        livingSituation:
          $ref: '#/components/schemas/LivingSituation'
        pets:
          type: array
          items:
            $ref: '#/components/schemas/Pet'
        homeOwner:
          type: boolean
        nationality:
          type: array
          items:
            $ref: '#/components/schemas/Nationality'
        areaType:
          $ref: '#/components/schemas/AreaType'
        webcam:
          type: boolean
        mobilePhoneWithInternet:
          type: boolean
        headsetWithMicrophone:
          type: boolean
        programmingLanguages:
          type: array
          items:
            $ref: '#/components/schemas/ProgrammingLanguage'
        browsers:
          type: array
          items:
            $ref: '#/components/schemas/Browser'
        smartphoneOS:
          type: array
          items:
            $ref: '#/components/schemas/SmartphoneOS'
        tabletOS:
          type: array
          items:
            $ref: '#/components/schemas/TabletOS'
        computerOS:
          type: array
          items:
            $ref: '#/components/schemas/ComputerOS'
        cloudPlatforms:
          type: array
          items:
            $ref: '#/components/schemas/CloudPlatform'
        codingAITools:
          type: array
          items:
            $ref: '#/components/schemas/CodingAITool'
        designPrototypingTools:
          type: array
          items:
            $ref: '#/components/schemas/DesignPrototypingTool'
        foodDeliveryServices:
          type: array
          items:
            $ref: '#/components/schemas/FoodDeliveryService'
        healthWellnessApps:
          type: array
          items:
            $ref: '#/components/schemas/HealthWellnessApp'
        onlineBankingTools:
          type: array
          items:
            $ref: '#/components/schemas/OnlineBankingTool'
        onlineLearningPlatforms:
          type: array
          items:
            $ref: '#/components/schemas/OnlineLearningPlatform'
        onlineMarketplacePlatforms:
          type: array
          items:
            $ref: '#/components/schemas/OnlineMarketplacePlatform'
        onlineTravelBooking:
          type: array
          items:
            $ref: '#/components/schemas/OnlineTravelBooking'
        productivitySoftware:
          type: array
          items:
            $ref: '#/components/schemas/ProductivitySoftware'
        smartHomeDevices:
          type: array
          items:
            $ref: '#/components/schemas/SmartHomeDevice'
        socialNetworkPlatforms:
          type: array
          items:
            $ref: '#/components/schemas/SocialNetworkPlatform'
        streamingServices:
          type: array
          items:
            $ref: '#/components/schemas/StreamingService'
        vehicleBrands:
          type: array
          items:
            $ref: '#/components/schemas/VehicleBrand'
        onlineShoppingFrequency:
          $ref: '#/components/schemas/OnlineShoppingFrequency'
        militaryServiceStatus:
          $ref: '#/components/schemas/MilitaryServiceStatus'
        workSetting:
          $ref: '#/components/schemas/WorkSetting'
        employmentStatuses:
          type: array
          items:
            $ref: '#/components/schemas/TargetableEmploymentStatus'
      title: Advanced Targeting
    SimpleIndustry:
      type: object
      properties:
        id:
          type: string
          format: ObjectId
        name:
          type: string
      required:
        - id
        - name
    SimpleJobTitle:
      type: object
      properties:
        id:
          type: string
          format: ObjectId
        name:
          type: string
      required:
        - id
        - name
    SimpleTopic:
      type: object
      properties:
        id:
          type: string
          format: ObjectId
        name:
          type: string
      required:
        - id
        - name
    Skill:
      type: object
      properties:
        createdAt:
          type: string
        updatedAt:
          type: string
        name:
          type: string
        slug:
          type: string
        validated:
          type: boolean
          default: false
        type:
          type: string
          default: skill
        count:
          type: number
          default: 0
        id:
          type: string
      required:
        - createdAt
        - name
        - slug
        - validated
        - type
        - id
    Location:
      type: object
      properties:
        id:
          type: string
        googleId:
          type: string
        region:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          $ref: '#/components/schemas/ProjectCountryCode'
        zipcode:
          type: string
        address1:
          type: string
        formattedAddress:
          type: string
        location:
          $ref: '#/components/schemas/LocationCoordinate'
      required:
        - city
        - country
        - location
    QuestionType:
      type: string
      enum:
        - radio
        - multiLineTextbox
        - checkbox
        - singleLineTextbox
        - numericBox
        - sliderScale
        - fileUpload
        - rank
        - matrix
    ScreenerQuestionAnswer:
      type: object
      properties:
        createdAt:
          type: string
        updatedAt:
          type: string
        uid:
          type: string
        text:
          type: string
          description: Required  unless `isOther`, then text will be set to 'Other'
        answerValue:
          type: number
          description: |-
            CHECKBOX: {
                    id: 3,
                    answerValues: [
                      { id: 1, text: 'May Select' },
                      { id: 2, text: 'Must Select' },
                      { id: 3, text: 'Disqualify' },
                    ],
                  },
                   RADIO: {
                    id: 1,
                    answerValues: [
                      { id: 1, text: 'Qualify' },
                      { id: 2, text: 'Disqualify' },
                    ],
                  },
        goToQuestionUid:
          type: string
          description: Skip logic for radio questions. Uid of question to skip to.
        isOther:
          type: boolean
          description: Is 'Other' answer with comment field
        id:
          type: string
      required:
        - createdAt
        - uid
        - answerValue
        - id
    ScreenerQuestionSkipLogic:
      type: object
      properties:
        answerUid:
          type: string
        goToQuestionUid:
          type: string
        skipLogicType:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogicType'
        multipleAnswers:
          type: array
          items:
            $ref: '#/components/schemas/SkipLogicMultipleAnswer'
        multipleAnswersBoolType:
          $ref: '#/components/schemas/SkipLogicMultipleAnswersBoolType'
      required:
        - answerUid
    ScreenerQuestionRankRule:
      type: object
      properties:
        topN:
          type: number
          description: >-
            Cutoff position (1-based). Preferred options must rank within the
            top N.

            Bounded by the per-question option cap; the launch-time schema
            additionally

            enforces `topN <= answers.length` (which can't be checked here
            because the

            rule is validated independently of the answers array).
        matchType:
          $ref: '#/components/schemas/RankMatchType'
      required:
        - topN
        - matchType
    ScreenerQuestionMatrixRow:
      type: object
      properties:
        uid:
          type: string
        text:
          type: string
        qualifyingAnswerUids:
          type: array
          items:
            type: string
      required:
        - uid
        - text
    MatrixMatchType:
      type: string
      enum:
        - all
        - any
    NdaType:
      type: string
      default: none
      enum:
        - none
        - file
        - link
    PastParticipationMonths:
      type: string
      description: >-
        Number of months to exclude participants who have previously
        participated in a study.

        Used only when `hasNeverParticipated` is false. For example, `months: 3`
        excludes participants who participated in the past 3 months.
      enum:
        - '-1'
        - '1'
        - '2'
        - '3'
        - '6'
        - '9'
        - '12'
    RelationshipStatus:
      type: string
      enum:
        - single
        - inRelationship
        - married
        - divorced
        - widowed
        - separated
        - domesticPartnershipCivilUnion
        - itsComplicated
        - preferNotToSay
        - other
    ParticipantLanguage:
      type: string
      enum:
        - en
        - es
        - zh
        - hi
        - ar
        - bn
        - ru
        - pt
        - ja
        - de
        - fr
        - it
        - ko
        - tr
        - pl
        - nl
        - vi
        - sv
        - fa
        - el
        - da
        - fi
        - 'no'
        - cs
        - th
        - ro
        - he
        - id
        - hu
        - uk
        - other
    LivingSituation:
      type: string
      enum:
        - alone
        - roommates
        - significantOther
        - spouse
        - parents
        - other
    Pet:
      type: string
      enum:
        - noPets
        - dog
        - cat
        - bird
        - fish
        - reptile
        - amphibian
        - other
    Nationality:
      type: string
      enum:
        - american
        - canadian
        - mexican
        - british
        - french
        - german
        - italian
        - spanish
        - dutch
        - swedish
        - norwegian
        - danish
        - finnish
        - polish
        - irish
        - portuguese
        - greek
        - swiss
        - austrian
        - belgian
        - czech
        - romanian
        - hungarian
        - chinese
        - indian
        - japanese
        - korean
        - filipino
        - vietnamese
        - thai
        - malaysian
        - singaporean
        - indonesian
        - pakistani
        - bangladeshi
        - australian
        - newzealander
        - brazilian
        - argentinian
        - colombian
        - chilean
        - peruvian
        - venezuelan
        - southafrican
        - nigerian
        - egyptian
        - kenyan
        - israeli
        - turkish
        - saudiarabian
        - other
    AreaType:
      type: string
      enum:
        - urban
        - suburban
        - rural
    ProgrammingLanguage:
      type: string
      enum:
        - javaScript
        - python
        - java
        - c#
        - c++
        - ruby
        - php
        - swift
        - kotlin
        - golang
        - r
        - typeScript
        - sql
        - other
    Browser:
      type: string
      enum:
        - chrome
        - edge
        - firefox
        - internetExplorer
        - safari
        - other
    SmartphoneOS:
      type: string
      enum:
        - android
        - ios
        - windows
        - other
        - noSmartphone
    TabletOS:
      type: string
      enum:
        - amazonFire
        - android
        - ipadOS
        - windows
        - other
        - noTablet
    ComputerOS:
      type: string
      enum:
        - macOS
        - windows
        - linux
        - other
        - noComputer
    CloudPlatform:
      type: string
      enum:
        - aws
        - microsoftazure
        - googlecloud
        - ibmcloud
        - oraclecloud
        - alibabacloud
        - digitalocean
        - heroku
        - vercel
        - netlify
        - cloudflare
        - linode
        - other
    CodingAITool:
      type: string
      enum:
        - claudecode
        - cursor
        - windsurf
        - githubcopilot
        - chatgpt
        - gemini
        - copilotchat
        - other
    DesignPrototypingTool:
      type: string
      enum:
        - figma
        - adobexd
        - sketch
        - invision
        - framer
        - axure
        - balsamiq
        - marvel
        - protoio
        - adobephotoshop
        - adobeillustrator
        - canva
        - affinitydesigner
        - principle
        - origami
        - other
    FoodDeliveryService:
      type: string
      enum:
        - ubereats
        - doordash
        - grubhub
        - postmates
        - seamless
        - instacart
        - deliveroo
        - justeat
        - skipthedishes
        - menulog
        - foodpanda
        - zomato
        - swiggy
        - rappi
        - other
    HealthWellnessApp:
      type: string
      enum:
        - applefitness
        - fitbit
        - strava
        - peloton
        - niketrainingclub
        - myfitnesspal
        - loseit
        - headspace
        - calm
        - insighttimer
        - tenpercenthappier
        - betterhelp
        - talkspace
        - sleepcycle
        - slumber
        - applehealth
        - googlefit
        - samsunghealth
        - noom
        - weightwatchers
        - cronometer
        - other
    OnlineBankingTool:
      type: string
      enum:
        - chime
        - varo
        - current
        - revolut
        - n26
        - monzo
        - mint
        - ynab
        - personalcapital
        - quicken
        - paypal
        - venmo
        - cashapp
        - zelle
        - applepay
        - googlepay
        - robinhood
        - webull
        - acorns
        - stash
        - betterment
        - wealthfront
        - coinbase
        - binance
        - kraken
        - other
    OnlineLearningPlatform:
      type: string
      enum:
        - coursera
        - udemy
        - linkedinlearning
        - skillshare
        - edx
        - khanacademy
        - pluralsight
        - masterclass
        - udacity
        - datacamp
        - codecademy
        - treehouse
        - brilliant
        - duolingo
        - rosettastone
        - babbel
        - googleskillshop
        - other
    OnlineMarketplacePlatform:
      type: string
      enum:
        - amazon
        - ebay
        - etsy
        - walmart
        - target
        - bestbuy
        - alibaba
        - aliexpress
        - shopify
        - wayfair
        - mercari
        - poshmark
        - depop
        - facebookmarketplace
        - craigslist
        - offerup
        - letgo
        - other
    OnlineTravelBooking:
      type: string
      enum:
        - expedia
        - bookingdotcom
        - airbnb
        - vrbo
        - kayak
        - priceline
        - hotelsdotcom
        - tripadvisor
        - orbitz
        - travelocity
        - hotwire
        - skyscanner
        - agoda
        - tripdotcom
        - hopper
        - googleflights
        - other
    ProductivitySoftware:
      type: string
      enum:
        - microsoftoffice
        - microsoft365
        - googleworkspace
        - appleiwork
        - notion
        - evernote
        - trello
        - asana
        - mondaydotcom
        - slack
        - microsoftteams
        - zoom
        - airtable
        - clickup
        - basecamp
        - jira
        - confluence
        - dropbox
        - googledrive
        - other
    SmartHomeDevice:
      type: string
      enum:
        - amazonecho
        - googlenest
        - applehomepod
        - echoshow
        - nesthub
        - nestthermostat
        - ecobee
        - honeywellhome
        - philipshue
        - lifx
        - nanoleaf
        - ring
        - arlo
        - nestcam
        - blink
        - augustlock
        - tplink
        - wemo
        - kasa
        - roomba
        - roborock
        - eufy
        - smartrefrigerator
        - smartoven
        - smartwasher
        - other
    SocialNetworkPlatform:
      type: string
      enum:
        - facebook
        - instagram
        - twitter
        - tiktok
        - linkedin
        - snapchat
        - pinterest
        - reddit
        - youtube
        - whatsapp
        - telegram
        - discord
        - twitch
        - mastodon
        - threads
        - bluesky
        - wechat
        - weibo
        - clubhouse
        - nextdoor
        - other
    StreamingService:
      type: string
      enum:
        - netflix
        - amazonprimevideo
        - disneyplus
        - hulu
        - hbomax
        - appletvplus
        - paramountplus
        - peacock
        - youtubetv
        - youtubepremium
        - crunchyroll
        - discoveryplus
        - showtime
        - starz
        - spotify
        - applemusic
        - youtubemusic
        - amazonmusic
        - tidal
        - pandora
        - soundcloud
        - slingtv
        - fubotv
        - other
    VehicleBrand:
      type: string
      enum:
        - ford
        - chevrolet
        - dodge
        - ram
        - jeep
        - gmc
        - cadillac
        - tesla
        - rivian
        - lucid
        - toyota
        - honda
        - nissan
        - mazda
        - subaru
        - mitsubishi
        - lexus
        - acura
        - infiniti
        - hyundai
        - kia
        - genesis
        - bmw
        - mercedesbenz
        - audi
        - volkswagen
        - porsche
        - volvo
        - mini
        - landrover
        - jaguar
        - fiat
        - alfaromeo
        - peugeot
        - renault
        - ferrari
        - lamborghini
        - maserati
        - bentley
        - rollsroyce
        - other
    OnlineShoppingFrequency:
      type: string
      enum:
        - severaltimesweek
        - aboutonceweek
        - fewtimesmonth
        - rarely
        - never
    MilitaryServiceStatus:
      type: string
      enum:
        - neverserved
        - currentlyserving
        - veteran
    WorkSetting:
      type: string
      enum:
        - hybrid
        - inPerson
        - remote
    TargetableEmploymentStatus:
      type: string
      enum:
        - owner
        - employedfulltime
        - employedparttime
        - unemployedlookingforwork
        - unemployed
        - retired
        - homemaker
        - fulltimestudent
        - parttimestudent
    LocationCoordinate:
      type: object
      properties:
        longitude:
          type: number
        latitude:
          type: number
      required:
        - longitude
        - latitude
    ScreenerQuestionSkipLogicType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/SkipLogicTypeId'
        text:
          $ref: '#/components/schemas/SkipLogicType'
      required:
        - id
        - text
    SkipLogicMultipleAnswer:
      type: object
      properties:
        answer:
          type: string
        logicType:
          $ref: '#/components/schemas/ScreenerQuestionSkipLogicType'
      required:
        - answer
        - logicType
    SkipLogicMultipleAnswersBoolType:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/MultipleAnswersBoolTypeId'
        text:
          $ref: '#/components/schemas/MultipleAnswersBoolType'
      required:
        - id
        - text
    RankMatchType:
      type: string
      enum:
        - all
        - any
    SkipLogicTypeId:
      type: number
      description: |-
        [

         SELECTED: 1

         NOT_SELECTED: 2

        ]
      enum:
        - 1
        - 2
    SkipLogicType:
      type: string
      enum:
        - Selected
        - Not Selected
    MultipleAnswersBoolTypeId:
      type: number
      description: |-
        [

         AND: 1

         OR: 2

        ]
      enum:
        - 1
        - 2
    MultipleAnswersBoolType:
      type: string
      enum:
        - AND
        - OR

````