{"openapi":"3.1.0","info":{"title":"Rally UXR Developer Docs","version":"1.0"},"servers":[{"url":"https://api.rallyuxr.com/api/public/v1"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Forms","description":"Operations on Forms in your workspace"},{"name":"People","description":"Operations on Person's stored in your workspace"},{"name":"Person Properties","description":"Operations on workspace level Person Properties"},{"name":"Populations","description":"Operations on Populations in your workspace"},{"name":"Segments","description":"Operations on Segments in your workspace"},{"name":"Studies","description":"Operations on Studies in your workspace"},{"name":"Participants","description":"Operations on Participants in studies"},{"name":"Participant Status Events","description":"Poll participant status-change events across your workspace"},{"name":"Study Status Events","description":"Poll-based access to study status-change events in your workspace"},{"name":"Screener","description":"Operations on a study's screener"},{"name":"Consent Submissions","description":"Operations on Consent Submissions for studies"},{"name":"Incentives","description":"Operations on Incentives in your workspace"},{"name":"Messages","description":"Operations on Message activities in your workspace"},{"name":"Imports","description":"Operations on Imports in your workspace"},{"name":"Users","description":"Operations on Workspace Users"},{"name":"Teams","description":"Operations on Teams in your workspace"},{"name":"Backfills","description":"Routes that can be used to backfill data into Rally. If you'd like access to these apis, please reach out to your Customer Success rep"},{"name":"Person","description":"Deprecated, use People"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"headers":{"Retry-After":{"description":"The number of seconds until the client should retry the request.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The maximum number of requests the client is allowed to make.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Remaining":{"description":"The number of requests remaining for the client in the current time window.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Reset":{"description":"The time at which the current time window ends (in Unix timestamp format).","schema":{"type":"integer","format":"int32"}}},"schemas":{"AddPersonProperty":{"type":"object","properties":{"name":{"type":"string","description":"The name of the property","example":"Company Size"},"propertyType":{"$ref":"#/components/schemas/PropertyType"},"propertyOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the option"},"color":{"$ref":"#/components/schemas/PersonPropertyOptionColor"},"order":{"type":"string","description":"The order of the option. Sorted by this string value, ie: it can be a number","examples":["1","a","A"],"example":"1"}},"required":["name"],"description":"Input object for adding a property option to a `SINGLE_SELECT` or `MULTI_SELECT` property","example":{"name":"SMB (1 - 100 employees)","color":"GREEN"}},"maxItems":100,"description":"Options for a `SINGLE_SELECT` or `MULTI_SELECT` property. Errors if passed for other property types","example":[{"name":"SMB (1 - 100 employees)","color":"GREEN"},{"name":"Mid Market (101 - 2000 employees)","color":"YELLOW"},{"name":"Enterprise (2000+ employees)","color":"BLUE"}]},"isUnique":{"type":"boolean","description":"Whether the property is unique across all people. Maximum of 10 across a workspace","maximum":10,"example":false},"isPHI":{"type":"boolean","description":"Whether the property is PHI (Protected health information)","example":false},"isPII":{"type":"boolean","description":"Whether the property is PII (Personally Identifiable Information)","example":false},"description":{"type":"string","description":"The description of the property","example":"A description of the property"}},"required":["name","propertyType"],"description":"Input object for adding a person property"},"BadRequestError":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}},"required":["message","path"]}}},"required":["errors"],"description":"Error response for a bad request with details on what was invalid"},"BooleanOperator":{"type":"string","enum":["EQUAL","NOT_EQUAL"]},"CancelIncentiveResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the incentive was canceled"},"incentiveId":{"type":"string","description":"The ID of the incentive that was canceled"}},"required":["success","incentiveId"],"description":"The result of canceling an incentive"},"ConsentFormSubmission":{"type":"object","properties":{"submissionId":{"type":"string","description":"The ID of the consent submission"},"consentFormId":{"type":"string","description":"The ID of the consent form"},"personId":{"type":"string","description":"The ID of the person"},"email":{"type":["string","null"],"description":"The email used for the submission"},"submissionSource":{"$ref":"#/components/schemas/ConsentSubmissionSource"},"submittedAt":{"type":"string","format":"date-time","description":"The date the consent form was submitted"}},"required":["submissionId","consentFormId","personId","email","submissionSource","submittedAt"],"description":"A consent form submission"},"ConsentSubmissionExportStatusParams":{"type":"object","properties":{"studyId":{"type":"string","description":"The study ID"},"exportId":{"type":"string","description":"The export ID"}},"required":["studyId","exportId"]},"ConsentSubmissionExportStudyParams":{"type":"object","properties":{"studyId":{"type":"string","description":"The study ID"}},"required":["studyId"]},"ConsentSubmissionSource":{"type":"string","enum":["SCHEDULER","SCREENER","LANDING_PAGE"],"description":"The source of the consent submission"},"CountryCode":{"type":"string","enum":["AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","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","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],"description":"Alpha-2 country code","example":"US"},"CreateScreenerQuestionBody":{"oneOf":[{"$ref":"#/components/schemas/PutTemplateScreenerQuestion"},{"$ref":"#/components/schemas/PutSimpleScreenerQuestion"},{"$ref":"#/components/schemas/PutOptionScreenerQuestion"},{"$ref":"#/components/schemas/PutDropdownScreenerQuestion"},{"$ref":"#/components/schemas/PutMatrixScreenerQuestion"}],"discriminator":{"propertyName":"category","mapping":{"template":"#/components/schemas/PutTemplateScreenerQuestion","simple":"#/components/schemas/PutSimpleScreenerQuestion","option":"#/components/schemas/PutOptionScreenerQuestion","dropdown":"#/components/schemas/PutDropdownScreenerQuestion","matrix":"#/components/schemas/PutMatrixScreenerQuestion"}},"description":"A single question to append to the screener, discriminated by category"},"CreateStudyInput":{"type":"object","properties":{"studyType":{"allOf":[{"$ref":"#/components/schemas/StudyType"},{"description":"The type of study. Required if not using a duplicate/study template"}]},"recruitmentStrategy":{"$ref":"#/components/schemas/RecruitmentStrategy"},"recruitmentPanelProvider":{"$ref":"#/components/schemas/RecruitmentPanelProvider"},"idOfStudyToDuplicate":{"type":"string","description":"The ID of the study to duplicate. Cannot be used with studyTemplateId. Values within the studyPlan will override any values from the duplicated study"},"studyTemplateId":{"type":"string","description":"The id of the study template. Cannot be used with idOfStudyToDuplicate. Values within the studyPlan will override any values from the template study"},"owners":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"string"},"description":"The userIds of any owners on the study"},"includeSelf":{"type":"boolean","default":false,"description":"Whether to include the current API user as an owner"}},"required":["userIds"]},"teamId":{"type":"string","description":"The ID of the team to associate the study with. Required in Rally For Teams"},"populationId":{"type":"string","description":"ID of the population where new study sign ups will go to if the study public link is active"},"studyPlan":{"$ref":"#/components/schemas/CreateStudyPlanInput"}},"required":["studyPlan"],"description":"Create study input"},"CreateStudyPlanInput":{"type":"object","properties":{"name":{"type":"string","description":"The internal name of the study"},"externalName":{"type":"string","description":"The external name of the study"},"description":{"type":"string","description":"The internal description of the study"},"startDate":{"anyOf":[{"type":"string","format":"date","description":"The start date of the study in YYYY-MM-DD format","example":"2025-01-01"},{"type":"string","format":"date-time","description":"The start date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-01T00:00:00Z","deprecated":true}]},"endDate":{"anyOf":[{"type":"string","format":"date","description":"The end date of the study in YYYY-MM-DD format","example":"2025-01-02"},{"type":"string","format":"date-time","description":"The end date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-02T00:00:00Z","deprecated":true}]},"researchPlanUrl":{"type":"string","description":"The URL of the research plan"},"participationLimit":{"type":"number","default":10,"description":"The participation limit of the study"},"consentFormId":{"type":"string","description":"The ID of the consent form"},"incentive":{"$ref":"#/components/schemas/StudyPlanCreateIncentive"},"includeScreener":{"type":"boolean","description":"Whether to include a screener. If type is `SURVEY` the default is true, if not then false"},"brandingConfigId":{"type":"string","description":"The ID of the branding configuration. Setting it mirrors changing the branding in-app: it also updates the study landing page's button color and, when the branding config has a workspace email, the study's booking-confirmation, booking-cancellation, interview-reminder, and interview-reschedule email defaults. On update, pass null to clear the study's branding."},"language":{"$ref":"#/components/schemas/LanguageCode"}},"required":["name"],"description":"Study details"},"CustomIncentive":{"type":"object","properties":{"customIncentiveId":{"type":"string","description":"The id of the custom incentive"},"name":{"type":"string","description":"The name of the custom incentive"},"description":{"type":["string","null"],"description":"The description of the custom incentive"},"type":{"type":"string","enum":["STRING","NUMBER","MONETARY","SINGLE_SELECT"],"description":"The type of the custom incentive"},"options":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the custom incentive option"}},"required":["name"]}}},"required":["customIncentiveId","name","description","type","options"]},"CustomPropertyFilter":{"oneOf":[{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_BooleanProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_NumberProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_StringProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_SingleSelectProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_MultiSelectProperty"},{"$ref":"#/components/schemas/Filter_CUSTOM_PROPERTY_LocationProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"BOOLEAN":"#/components/schemas/Filter_CUSTOM_PROPERTY_BooleanProperty","DATETIME":"#/components/schemas/Filter_CUSTOM_PROPERTY_DateTimeProperty","NUMBER":"#/components/schemas/Filter_CUSTOM_PROPERTY_NumberProperty","STRING":"#/components/schemas/Filter_CUSTOM_PROPERTY_StringProperty","SINGLE_SELECT":"#/components/schemas/Filter_CUSTOM_PROPERTY_SingleSelectProperty","MULTI_SELECT":"#/components/schemas/Filter_CUSTOM_PROPERTY_MultiSelectProperty","LOCATION":"#/components/schemas/Filter_CUSTOM_PROPERTY_LocationProperty"}},"description":"A custom property filter. Multi-select filters use values with property option IDs, not value or option display names.","example":{"propertyType":"MULTI_SELECT","propertyGroup":"CUSTOM_PROPERTY","propertyName":"CUSTOM_PROPERTY","propertyId":"custom_property_1","operator":"CONTAINS","values":["custom_property_option_1"]}},"DateOperator":{"type":"string","enum":["IS","IS_NOT","IS_BEFORE","IS_AFTER","IS_ON_OR_BEFORE","IS_ON_OR_AFTER","IS_WITHIN","IS_EMPTY","IS_NOT_EMPTY"]},"DateValues":{"type":"string","enum":["TODAY","TOMORROW","YESTERDAY","ONE_WEEK_AGO","ONE_WEEK_FROM_NOW","ONE_MONTH_AGO","ONE_MONTH_FROM_NOW","ONE_YEAR_AGO","ONE_YEAR_FROM_NOW","NUMBER_OF_DAYS_AGO","NUMBER_OF_DAYS_FROM_NOW","NUMBER_OF_WEEKS_AGO","NUMBER_OF_WEEKS_FROM_NOW","NUMBER_OF_MONTHS_AGO","NUMBER_OF_MONTHS_FROM_NOW","NUMBER_OF_YEARS_AGO","NUMBER_OF_YEARS_FROM_NOW","EXACT_DATE"],"description":"The value of the date being searched for. All dates are relative to workspace timezone"},"DropdownScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["dropdown"]},"type":{"type":"string","enum":["DROPDOWN"],"description":"A dropdown question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"options":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected option"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"}},"required":["category","type","name","options"],"description":"A dropdown question (no \"Other\" or \"None of the above\")"},"DropdownScreenerQuestionResponse":{"allOf":[{"$ref":"#/components/schemas/DropdownScreenerQuestion"},{"type":"object","properties":{"isRequired":{"type":"boolean","description":"Whether a response is required before the screener can be submitted"},"id":{"type":"string","description":"The question id"},"workspaceId":{"type":"string","description":"The workspace that owns the question"},"questionTemplateId":{"type":"string","description":"Present for questions created from a template"}},"required":["isRequired","id","workspaceId"]}],"description":"A dropdown question (no \"Other\" or \"None of the above\")"},"EditPersonProperty":{"type":"object","properties":{"name":{"type":"string","description":"The name of the property"},"propertyOptions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the option"},"color":{"$ref":"#/components/schemas/PersonPropertyOptionColor"},"order":{"type":"string","description":"The order of the option. Sorted by this string value, ie: it can be a number","examples":["1","a","A"],"example":"1"},"propertyOptionId":{"type":"string","description":"The unique identifier of the option. If not included a new option will be created. If included then that option will be updated if other fields have changed"}},"required":["name"],"description":"Input object for adding a property option to a `SINGLE_SELECT` or `MULTI_SELECT` property","example":{"name":"SMB (1 - 100 employees)","color":"GREEN"}},"description":"Options for a `SINGLE_SELECT` or `MULTI_SELECT` property. Will error if passed and the type does not support them. Property options that are not included in this object will be deleted."},"isPHI":{"type":"boolean","description":"Whether the property is PHI (Protected health information)"},"isPII":{"type":"boolean","description":"Whether the property is PII (Personally Identifiable Information)"},"description":{"type":"string","description":"The description of the property"}},"description":"Input object for editing a person property. Pass *all* property options except ones that will be deleted"},"Email":{"allOf":[{"$ref":"#/components/schemas/Message"},{"type":"object","properties":{"recipientEmail":{"type":["string","null"],"description":"The email address of the recipient"},"senderEmail":{"type":["string","null"],"description":"The email address of the sender"},"subject":{"type":["string","null"],"description":"The subject of the email"}},"required":["recipientEmail","senderEmail","subject"]}],"description":"An email message"},"EmailsSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Email"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"],"description":"Response for a search of emails"},"ExternalSurveySetupStatus":{"type":"string","enum":["IN_PROGRESS","READY","FAILED"],"description":"Setup status of an external survey screener"},"Filter":{"anyOf":[{"type":"object","properties":{"customProperty":{"$ref":"#/components/schemas/CustomPropertyFilter"}},"required":["customProperty"]},{"type":"object","properties":{"person":{"oneOf":[{"$ref":"#/components/schemas/Filter_PERSON_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_PERSON_BooleanProperty"},{"$ref":"#/components/schemas/Filter_PERSON_NumberProperty"},{"$ref":"#/components/schemas/Filter_PERSON_StringProperty"},{"$ref":"#/components/schemas/Filter_PERSON_MultiSelectProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"DATETIME":"#/components/schemas/Filter_PERSON_DateTimeProperty","BOOLEAN":"#/components/schemas/Filter_PERSON_BooleanProperty","NUMBER":"#/components/schemas/Filter_PERSON_NumberProperty","STRING":"#/components/schemas/Filter_PERSON_StringProperty","MULTI_SELECT":"#/components/schemas/Filter_PERSON_MultiSelectProperty"}}}},"required":["person"]},{"type":"object","properties":{"incentive":{"oneOf":[{"$ref":"#/components/schemas/Filter_INCENTIVE_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_INCENTIVE_StringProperty"},{"$ref":"#/components/schemas/Filter_INCENTIVE_SingleSelectProperty"},{"$ref":"#/components/schemas/Filter_INCENTIVE_MultiSelectProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"DATETIME":"#/components/schemas/Filter_INCENTIVE_DateTimeProperty","STRING":"#/components/schemas/Filter_INCENTIVE_StringProperty","SINGLE_SELECT":"#/components/schemas/Filter_INCENTIVE_SingleSelectProperty","MULTI_SELECT":"#/components/schemas/Filter_INCENTIVE_MultiSelectProperty"}}}},"required":["incentive"]},{"type":"object","properties":{"participant":{"oneOf":[{"$ref":"#/components/schemas/Filter_PARTICIPANT_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_PARTICIPANT_BooleanProperty"},{"$ref":"#/components/schemas/Filter_PARTICIPANT_StringProperty"},{"$ref":"#/components/schemas/Filter_PARTICIPANT_SingleSelectProperty"},{"$ref":"#/components/schemas/Filter_PARTICIPANT_MultiSelectProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"DATETIME":"#/components/schemas/Filter_PARTICIPANT_DateTimeProperty","BOOLEAN":"#/components/schemas/Filter_PARTICIPANT_BooleanProperty","STRING":"#/components/schemas/Filter_PARTICIPANT_StringProperty","SINGLE_SELECT":"#/components/schemas/Filter_PARTICIPANT_SingleSelectProperty","MULTI_SELECT":"#/components/schemas/Filter_PARTICIPANT_MultiSelectProperty"}}}},"required":["participant"]}],"description":"A filter for searching for people"},"FilterGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"$ref":"#/components/schemas/Filter"}}},"required":["filters"],"description":"A group of filters"},"Filter_CUSTOM_PROPERTY_BooleanProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["BOOLEAN"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/BooleanOperator"},"value":{"type":"boolean"},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator","value"]},"Filter_CUSTOM_PROPERTY_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_CUSTOM_PROPERTY_LocationProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["LOCATION"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/LocationOperator"},"value":{"type":"object","properties":{"centerPoint":{"type":"object","properties":{"lat":{"type":"number"},"lon":{"type":"number"}},"required":["lat","lon"]},"unit":{"type":"string","enum":["KM","MI"]},"range":{"type":"number"}}},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_CUSTOM_PROPERTY_MultiSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/MultiSelectOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Property option IDs to match for CONTAINS/DOES_NOT_CONTAIN operators. Use propertyOptionId values from the properties API, not option display names.","example":["cm0b4eokq000vbbsimwelll3u"]},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_CUSTOM_PROPERTY_NumberProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["NUMBER"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/NumberOperator"},"value":{"type":"number"},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_CUSTOM_PROPERTY_SingleSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/SingleSelectOperator"},"value":{"type":"string","description":"Single value for IS/IS_NOT operators"},"values":{"type":"array","items":{"type":"string"},"description":"Multiple values for IS_ANY_OF/IS_NONE_OF operators"},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_CUSTOM_PROPERTY_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyId":{"type":"string"},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyName":{"type":"string","enum":["CUSTOM_PROPERTY"]},"propertyGroup":{"type":"string","enum":["CUSTOM_PROPERTY"]}},"required":["propertyType","propertyId","operator"]},"Filter_INCENTIVE_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyName":{"type":"string","enum":["SENT_AT"]},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyGroup":{"type":"string","enum":["INCENTIVE"]}},"required":["propertyType","propertyName","operator"]},"Filter_INCENTIVE_MultiSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyName":{"type":"string","enum":["CUSTOM_INCENTIVE"]},"operator":{"$ref":"#/components/schemas/MultiSelectOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Property option IDs to match for CONTAINS/DOES_NOT_CONTAIN operators. Use propertyOptionId values from the properties API, not option display names.","example":["cm0b4eokq000vbbsimwelll3u"]},"propertyGroup":{"type":"string","enum":["INCENTIVE"]}},"required":["propertyType","propertyName","operator"]},"Filter_INCENTIVE_SingleSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyName":{"type":"string","enum":["TYPE","STATUS","INCENTIVE_BUDGET","TEAM"]},"operator":{"$ref":"#/components/schemas/SingleSelectOperator"},"value":{"type":"string","description":"Single value for IS/IS_NOT operators"},"values":{"type":"array","items":{"type":"string"},"description":"Multiple values for IS_ANY_OF/IS_NONE_OF operators"},"propertyGroup":{"type":"string","enum":["INCENTIVE"]}},"required":["propertyType","propertyName","operator"]},"Filter_INCENTIVE_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyName":{"type":"string","enum":["EMAIL","STUDY","CUSTOM_INCENTIVE_VALUE"]},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyGroup":{"type":"string","enum":["INCENTIVE"]}},"required":["propertyType","propertyName","operator"]},"Filter_MESSAGE_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyName":{"type":"string","enum":["SENT_AT","SCHEDULED_AT"]},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyGroup":{"type":"string","enum":["MESSAGE"]}},"required":["propertyType","propertyName","operator"]},"Filter_MESSAGE_NumberProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["NUMBER"]},"propertyName":{"type":"string","enum":["EMAIL_OPEN_COUNT","LINK_CLICK_COUNT"]},"operator":{"$ref":"#/components/schemas/NumberOperator"},"value":{"type":"number"},"propertyGroup":{"type":"string","enum":["MESSAGE"]}},"required":["propertyType","propertyName","operator"]},"Filter_MESSAGE_SingleSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyName":{"type":"string","enum":["EMAIL_STATUS","EMAIL_CAMPAIGN","MESSAGE_TYPE","MESSAGE_STATUS"]},"operator":{"$ref":"#/components/schemas/SingleSelectOperator"},"value":{"type":"string","description":"Single value for IS/IS_NOT operators"},"values":{"type":"array","items":{"type":"string"},"description":"Multiple values for IS_ANY_OF/IS_NONE_OF operators"},"propertyGroup":{"type":"string","enum":["MESSAGE"]}},"required":["propertyType","propertyName","operator"]},"Filter_MESSAGE_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyName":{"type":"string","enum":["SUBJECT","SENDER_EMAIL_ADDRESS","RECIPIENT_EMAIL_ADDRESS"]},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyGroup":{"type":"string","enum":["MESSAGE"]}},"required":["propertyType","propertyName","operator"]},"Filter_PARTICIPANT_BooleanProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["BOOLEAN"]},"propertyName":{"type":"string","enum":["CONSENT_FORM_SUBMITTED"]},"operator":{"$ref":"#/components/schemas/BooleanOperator"},"value":{"type":"boolean"},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]}},"required":["propertyType","propertyName","operator","value"]},"Filter_PARTICIPANT_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyName":{"type":"string","enum":["INTERVIEW_START_TIME","INTERVIEW_START_DATE","SCREENER_SENT_AT","SCREENER_SUBMITTED_AT","TEST_COMPLETED_AT"]},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]}},"required":["propertyType","propertyName","operator"]},"Filter_PARTICIPANT_MultiSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyName":{"type":"string","enum":["STUDY_QUOTA_GROUP"]},"operator":{"$ref":"#/components/schemas/MultiSelectOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Property option IDs to match for CONTAINS/DOES_NOT_CONTAIN operators. Use propertyOptionId values from the properties API, not option display names.","example":["cm0b4eokq000vbbsimwelll3u"]},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]}},"required":["propertyType","propertyName","operator"]},"Filter_PARTICIPANT_SingleSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyName":{"type":"string","enum":["SCREENER_STATUS","STATUS","APPROVAL_STATUS","RECRUITMENT_CRITERIA_MATCH","STUDY_SHORTLIST_STATUS","BOOKING_ROLE"]},"operator":{"$ref":"#/components/schemas/SingleSelectOperator"},"value":{"type":"string","description":"Single value for IS/IS_NOT operators"},"values":{"type":"array","items":{"type":"string"},"description":"Multiple values for IS_ANY_OF/IS_NONE_OF operators"},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]}},"required":["propertyType","propertyName","operator"]},"Filter_PARTICIPANT_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyName":{"type":"string","enum":["PARTICIPANT_ID","STUDY_FIRST_SIGNUP_REFERRAL_CODE","STUDY_LAST_SIGNUP_REFERRAL_CODE","STUDY_NOTE"]},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]}},"required":["propertyType","propertyName","operator"]},"Filter_PERSON_BooleanProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["BOOLEAN"]},"propertyName":{"type":"string","enum":["OPTED_OUT","CONSENT_FORM_WAS_SUBMITTED"]},"operator":{"$ref":"#/components/schemas/BooleanOperator"},"value":{"type":"boolean"},"propertyGroup":{"type":"string","enum":["PERSON"]}},"required":["propertyType","propertyName","operator","value"]},"Filter_PERSON_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyName":{"type":"string","enum":["IMPORT_DATE","LAST_CONTACT_DATE","LAST_INTERVIEW_DATE","LAST_UNMOD_TEST_DATE","LAST_SURVEY_DATE","CONTACT_STATUS_UPDATE_DATE","LAST_CHANGED_AT","SCREENER_SUBMITTED_AT","FORM_SIGNEDUP_AT"]},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyGroup":{"type":"string","enum":["PERSON"]}},"required":["propertyType","propertyName","operator"]},"Filter_PERSON_MultiSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyName":{"type":"string","enum":["IMPORT_UPLOAD_LIST","IMPORT_SOURCE","PANEL_MEMBERSHIP","STUDY_MEMBERSHIP","CONTACT_STATUS","CONSENT_SUBMISSIONS","POPULATION_MEMBERSHIP","SEGMENT_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","SCREENER_STATUS","FORM_APPROVAL_STATUS","SIGNUP_REFERRAL_CODES"]},"operator":{"$ref":"#/components/schemas/MultiSelectOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Property option IDs to match for CONTAINS/DOES_NOT_CONTAIN operators. Use propertyOptionId values from the properties API, not option display names.","example":["cm0b4eokq000vbbsimwelll3u"]},"propertyGroup":{"type":"string","enum":["PERSON"]}},"required":["propertyType","propertyName","operator"]},"Filter_PERSON_NumberProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["NUMBER"]},"propertyName":{"type":"string","enum":["INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","TOTAL_NUMBER_OF_NO_SHOW_INTERVIEWS","SHOW_RATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","PARTICIPANT_RATING","TOTAL_RATINGS"]},"operator":{"$ref":"#/components/schemas/NumberOperator"},"value":{"type":"number"},"propertyGroup":{"type":"string","enum":["PERSON"]}},"required":["propertyType","propertyName","operator"]},"Filter_PERSON_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyName":{"type":"string","enum":["PERSON_ID","NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","FORM_FIRST_SIGNUP_REFERRAL_CODE","FORM_LAST_SIGNUP_REFERRAL_CODE"]},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyGroup":{"type":"string","enum":["PERSON"]}},"required":["propertyType","propertyName","operator"]},"Filter_STUDY_DateTimeProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyName":{"type":"string","enum":["CREATED","UPDATED","START_DATE","END_DATE"]},"operator":{"$ref":"#/components/schemas/DateOperator"},"value":{"$ref":"#/components/schemas/DateValues"},"timestamp":{"type":"number","description":"Deprecated since use of this value can be confusing. The timestamp of a date in UTC milliseconds. This uses the date value of the timestamp by truncating to the day. Filtering for exact times is not supported. Requires EXACT_DATE value","deprecated":true},"exactDate":{"type":"string","format":"date","description":"A date string in yyyy-MM-dd. Requires EXACT_DATE value"},"amount":{"type":"number","description":"The number of time units (days, weeks, months, or years) depending on the value field. Prefer this over days for clarity."},"days":{"type":"number","description":"Deprecated: Use amount instead. The number of time units (days, weeks, months, or years) depending on the value field.","deprecated":true},"propertyGroup":{"type":"string","enum":["STUDY"]}},"required":["propertyType","propertyName","operator"]},"Filter_STUDY_MultiSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyName":{"type":"string","enum":["TEAMS","OWNERS"]},"operator":{"$ref":"#/components/schemas/MultiSelectOperator"},"values":{"type":"array","items":{"type":"string"},"description":"Property option IDs to match for CONTAINS/DOES_NOT_CONTAIN operators. Use propertyOptionId values from the properties API, not option display names.","example":["cm0b4eokq000vbbsimwelll3u"]},"propertyGroup":{"type":"string","enum":["STUDY"]}},"required":["propertyType","propertyName","operator"]},"Filter_STUDY_NumberProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["NUMBER"]},"propertyName":{"type":"string","enum":["INTERVIEW_DURATION","INCENTIVE_AMOUNT"]},"operator":{"$ref":"#/components/schemas/NumberOperator"},"value":{"type":"number"},"propertyGroup":{"type":"string","enum":["STUDY"]}},"required":["propertyType","propertyName","operator"]},"Filter_STUDY_SingleSelectProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyName":{"type":"string","enum":["STATUS","TYPE","LANGUAGE"]},"operator":{"$ref":"#/components/schemas/SingleSelectOperator"},"value":{"type":"string","description":"Single value for IS/IS_NOT operators"},"values":{"type":"array","items":{"type":"string"},"description":"Multiple values for IS_ANY_OF/IS_NONE_OF operators"},"propertyGroup":{"type":"string","enum":["STUDY"]}},"required":["propertyType","propertyName","operator"],"example":{"propertyType":"SINGLE_SELECT","propertyGroup":"STUDY","propertyName":"STATUS","operator":"IS","value":"DRAFT"}},"Filter_STUDY_StringProperty":{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyName":{"type":"string","enum":["ID","NAME","EXTERNAL_NAME","CREATED_FROM_TEMPLATE_ID"]},"operator":{"$ref":"#/components/schemas/StringOperator"},"value":{"type":"string"},"propertyGroup":{"type":"string","enum":["STUDY"]}},"required":["propertyType","propertyName","operator"]},"GetAllPropertyGroupsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PropertyGroup"},"description":"The list of property groups"}},"required":["results"],"description":"The response of getting all property groups"},"GetSinglePropertyGroupResponse":{"type":"object","properties":{"propertyGroup":{"$ref":"#/components/schemas/PropertyGroup"}},"required":["propertyGroup"],"description":"The response of getting a single property group"},"ImportPeopleBody":{"type":"object","properties":{"identifierPropertyId":{"type":"string","description":"By default, \"email\" is used as the identifier. You can also use \"phone\" or provide the ID of a unique custom property to use as the identifier instead"},"people":{"type":"array","items":{"type":"object","properties":{"firstName":{"type":["string","null"],"description":"The first name of the person"},"lastName":{"type":["string","null"],"description":"The last name of the person"},"isOptedOut":{"type":"boolean","description":"Whether the person is opted out of research"},"lastContactDate":{"type":"string","format":"date","description":"The last contact date of the person. In YYYY-MM-DD format"},"additionalEmails":{"type":"array","items":{"type":"string"},"description":"The additional emails of the person"},"additionalPhones":{"type":"array","items":{"type":"string"},"description":"Additional phone numbers of the person"},"properties":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"propertyType":{"$ref":"#/components/schemas/PropertyType"},"isUnique":{"type":"boolean","description":"Whether the property is unique across all people. Maximum of 10 across a workspace","maximum":10},"isPHI":{"type":"boolean","description":"Whether the property is PHI (Protected health information)"},"isPII":{"type":"boolean","description":"Whether the property is PII (Personally Identifiable Information)"},"value":{"anyOf":[{"type":"string","format":"date","description":"A date value. Must be in YYYY-MM-DD format"},{"type":"number","description":"A number value"},{"type":"boolean","description":"A boolean value"},{"type":"string","description":"Any string value"},{"type":"array","items":{"type":"string"},"description":"An array of string values"},{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"The latitude of the location"},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"The longitude of the location"},"country":{"$ref":"#/components/schemas/CountryCode"},"postalCode":{"type":"string","description":"The postal code of the location"},"admin1":{"type":"string","description":"The state/territory/administrative area level 1 of the location"},"admin2":{"type":"string","description":"The county/parish/borough/administrative area level 2 of the location"},"admin3":{"type":"string","description":"The city/municipality/administrative area level 3 of the location"}},"required":["latitude","longitude","country"],"description":"The value of a location property","example":{"latitude":37.7749,"longitude":-122.4194,"country":"US","postalCode":"94103","admin1":"CA","admin2":"San Francisco","admin3":"San Francisco"}}],"description":"The value of a person's property. Will be coerced to the value type of the property. Dates must be in YYYY-MM-DD","example":"Blue","examples":["2025-01-01","true","123",""]}},"required":["name","propertyType","value"]},{"type":"object","properties":{"propertyId":{"type":"string"},"value":{"anyOf":[{"type":"string","format":"date","description":"A date value. Must be in YYYY-MM-DD format"},{"type":"number","description":"A number value"},{"type":"boolean","description":"A boolean value"},{"type":"string","description":"Any string value"},{"type":"array","items":{"type":"string"},"description":"An array of string values"},{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"The latitude of the location"},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"The longitude of the location"},"country":{"$ref":"#/components/schemas/CountryCode"},"postalCode":{"type":"string","description":"The postal code of the location"},"admin1":{"type":"string","description":"The state/territory/administrative area level 1 of the location"},"admin2":{"type":"string","description":"The county/parish/borough/administrative area level 2 of the location"},"admin3":{"type":"string","description":"The city/municipality/administrative area level 3 of the location"}},"required":["latitude","longitude","country"],"description":"The value of a location property","example":{"latitude":37.7749,"longitude":-122.4194,"country":"US","postalCode":"94103","admin1":"CA","admin2":"San Francisco","admin3":"San Francisco"}}],"description":"The value of a person's property. Will be coerced to the value type of the property. Dates must be in YYYY-MM-DD","example":"Blue","examples":["2025-01-01","true","123",""]}},"required":["propertyId","value"]}]},"maxItems":100,"description":"The properties of the person"},"identifier":{"type":"string","description":"A unique identifier for this person, can be used to insert or update based on this property type instead of email. Must be provided for all within a single request of people. Note: Email and this value are *both* unique. If you provide an identifier but the email provided already exists then we do not update the email"},"email":{"type":"string"},"phone":{"type":"string","description":"Phone number of the person, can be used as a primary identifier"}},"required":["properties"]},"description":"The people to import. If first/last name are null then they'll be overwritten. You can use email, phone, or a custom identifier property for matching existing people"},"populationId":{"type":"string","description":"The ID of the population the person should be created/updated in. If not provided, the person will be created/updated across the workspace"}},"required":["people"],"description":"Takes an object that contains an array of people to import. \nInternal properties are on the person object and custom properties can be specified either with the id of the property or an object that contains the name and property type. \n  If a property with that name already exists then it will be used with *no* modification, if it does not exist then then property will be created before the import begins.","example":{"people":[{"email":"dev@rallyuxr.com","phone":"+1 415 777-7777","firstName":"Dev","lastName":"Rally","isOptedOut":false,"lastContactDate":"2025-01-01","additionalEmails":["dev+1@rallyuxr.com"],"additionalPhones":["+1-555-123-4568"],"properties":[{"propertyId":"cm0b4eokq000vbbsimwelll3u","value":"2025-01-01"},{"name":"Favorite Color","propertyType":"STRING","value":"Blue"}]}]}},"Incentive":{"type":"object","properties":{"incentiveId":{"type":"string","description":"The ID of the incentive"},"type":{"type":["string","null"],"enum":["MONEY_OR_GIFT_CARD","CUSTOM","RECRUITMENT_FEE","RESPONDENT_MONEY",null],"description":"The type of the incentive"},"amountCents":{"type":["integer","null"],"exclusiveMinimum":0,"description":"The value of the incentive in cents"},"sentAt":{"type":"string","format":"date-time","description":"When the incentive was sent"},"recipientEmail":{"type":["string","null"],"format":"email","description":"The email of the recipient. Null when the recipient has been deleted. Masked if the api key doesn't have permissions"},"personId":{"type":["string","null"],"description":"The ID of the person"},"participantId":{"type":["string","null"],"description":"The ID of the participant"},"studyId":{"type":["string","null"],"description":"The ID of the study"},"status":{"type":"string","enum":["UNCLAIMED","CLAIMED","CANCELED","ERROR","SENT","EXPIRED"],"description":"The payment status of the incentive. Money and Charity incentives move through UNCLAIMED -> CLAIMED, ERROR, CANCELED, EXPIRED. Custom Incentives have no flow and are always SENT. EXPIRED applies to incentives sent after Jan 31 2026 that remain unclaimed for 1 year."},"budgetId":{"type":["string","null"],"description":"The ID of the budget"},"teamId":{"type":["string","null"],"description":"The ID of the team that owned the study when the incentive was sent"},"customIncentiveId":{"type":["string","null"],"description":"The ID of the custom incentive"},"customIncentiveValue":{"type":["string","null"],"description":"The value of the custom incentive"}},"required":["incentiveId","type","amountCents","sentAt","recipientEmail","personId","participantId","studyId","status","budgetId","teamId"],"description":"An incentives's metadata"},"IncentiveCurrencyType":{"type":"string","enum":["USD","EUR","GBP","CAD","AUD","NZD"],"description":"The currency of the incentive. Defaults to USD when not provided"},"IncentiveType":{"type":"string","enum":["MONEY_OR_GIFT_CARD","MONEY_OR_GIFT_CARD_WITH_TREMENDOUS","EXTERNAL_MONEY_OR_GIFT_CARD","CHARITY","CUSTOM","RESPONDENT_MONEY","RECRUITMENT_FEE"],"description":"The type of incentive"},"InputIncentiveType":{"type":"string","enum":["MONEY_OR_GIFT_CARD","CUSTOM","CHARITY"],"description":"Incentive types that can be created by the API"},"InterviewBookingId":{"type":"string"},"LanguageCode":{"type":"string","enum":["en","es","fr","it","ro","pt","pl","de","nl","ja","pt_BR","ko","cs","hi","sk","ar","tr"],"default":"en","description":"The language code for the study"},"ListIncentivesResponse":{"type":"object","properties":{"incentiveIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the incentives"},"incentives":{"type":"array","items":{"$ref":"#/components/schemas/ListedIncentive"},"description":"The incentives in the same order as incentiveIds, each with its team attribution"},"total":{"type":"number","description":"The total number of incentives matching the query"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["incentiveIds","incentives","total","pageInfo"],"description":"A paginated list of incentive IDs"},"ListedIncentive":{"type":"object","properties":{"incentiveId":{"type":"string","description":"The ID of the incentive"},"teamId":{"type":["string","null"],"description":"The ID of the team that owned the study when the incentive was sent"}},"required":["incentiveId","teamId"],"description":"An incentive ID with the team that owned its study when it was sent. Use GET /incentives/{incentiveId} for the full incentive."},"LocationOperator":{"type":"string","enum":["WITHIN_RADIUS","IS_EMPTY","IS_NOT_EMPTY"]},"LogCustomIncentiveResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the custom incentive was logged"},"isAsync":{"type":"boolean","description":"Whether logging is processed asynchronously. Larger requests are queued and processed in the background"},"loggedIncentiveCount":{"type":"number","description":"The number of participants the incentive was logged against"},"skippedParticipantIds":{"type":"array","items":{"type":"string"},"description":"Participants that were skipped because they already had an outstanding custom incentive for the study. Empty when allowDuplicate is true"}},"required":["success","isAsync"],"description":"The result of logging a custom incentive"},"MatrixScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["matrix"]},"type":{"type":"string","enum":["MATRIX"],"description":"A matrix question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/MatrixScreenerQuestionRow"},"minItems":1,"maxItems":25,"description":"The matrix rows"},"columns":{"type":"array","items":{"type":"string","maxLength":40},"minItems":1,"maxItems":25,"description":"The shared column labels applied to every row"}},"required":["category","type","name","rows","columns"],"description":"A matrix question with rows and shared columns"},"MatrixScreenerQuestionResponse":{"allOf":[{"$ref":"#/components/schemas/MatrixScreenerQuestion"},{"type":"object","properties":{"isRequired":{"type":"boolean","description":"Whether a response is required before the screener can be submitted"},"id":{"type":"string","description":"The question id"},"workspaceId":{"type":"string","description":"The workspace that owns the question"},"questionTemplateId":{"type":"string","description":"Present for questions created from a template"}},"required":["isRequired","id","workspaceId"]}],"description":"A matrix question with rows and shared columns"},"MatrixScreenerQuestionRow":{"type":"object","properties":{"value":{"type":"string","maxLength":100,"description":"The row label"},"mappedToPropertyId":{"type":"string","description":"Map this row's response to a person property"},"columnToPropertyOptionId":{"type":"object","additionalProperties":{"type":"string"},"description":"Maps a column value to a property option id. Columns missing from this map are left unmapped."}},"required":["value"],"description":"A row of a matrix question"},"Message":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the message"},"messageType":{"type":"string","enum":["EMAIL","SMS","WHATSAPP"],"description":"The channel type of the message (EMAIL, SMS)"},"recipientId":{"type":["string","null"],"description":"The ID of the recipient person"},"senderId":{"type":["string","null"],"description":"The ID of the sender user"},"status":{"type":"string","description":"The status of the message"},"type":{"type":"string","description":"The type of message (e.g., AD_HOC, SCREENER)"},"sentAt":{"type":["string","null"],"format":"date-time","description":"When the message was sent"},"scheduledSendTime":{"type":["string","null"],"format":"date-time","description":"When the message is scheduled to be sent"},"studyId":{"type":["string","null"],"description":"The ID of the associated study"},"participantId":{"type":["string","null"],"description":"The ID of the associated participant"},"messageCampaignId":{"type":["string","null"],"description":"The ID of the associated message campaign"},"createdAt":{"type":"string","format":"date-time","description":"When the message was created"}},"required":["id","messageType","recipientId","senderId","status","type","sentAt","scheduledSendTime","studyId","participantId","messageCampaignId","createdAt"],"description":"A message"},"MessageFilter":{"anyOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"message":{"oneOf":[{"$ref":"#/components/schemas/Filter_MESSAGE_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_MESSAGE_NumberProperty"},{"$ref":"#/components/schemas/Filter_MESSAGE_StringProperty"},{"$ref":"#/components/schemas/Filter_MESSAGE_SingleSelectProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"DATETIME":"#/components/schemas/Filter_MESSAGE_DateTimeProperty","NUMBER":"#/components/schemas/Filter_MESSAGE_NumberProperty","STRING":"#/components/schemas/Filter_MESSAGE_StringProperty","SINGLE_SELECT":"#/components/schemas/Filter_MESSAGE_SingleSelectProperty"}}}},"required":["message"]}],"description":"A filter for searching messages. Supports filtering by person, incentive, participant, and message properties."},"MessageFilterGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"$ref":"#/components/schemas/MessageFilter"}}},"required":["filters"],"description":"A group of message filters"},"MultiSelectOperator":{"type":"string","enum":["CONTAINS","DOES_NOT_CONTAIN","IS_EMPTY","IS_NOT_EMPTY"]},"NumberOperator":{"type":"string","enum":["EQUAL","NOT_EQUAL","GREATER_THAN","LESS_THAN","GTE","LTE","IS_EMPTY","IS_NOT_EMPTY"]},"ObserverRoomBotId":{"type":"string"},"ObserverRoomId":{"type":"string"},"OptionScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["option"]},"type":{"type":"string","enum":["SINGLE_SELECT","MULTI_SELECT"],"description":"Whether respondents may select one option (SINGLE_SELECT) or several (MULTI_SELECT)"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"options":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected options"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"randomizeOrder":{"type":"boolean","default":false,"description":"Randomize the order options are shown to each respondent"},"includeOther":{"type":"boolean","default":false,"description":"Add a free-text \"Other\" option"},"otherDisplayText":{"type":"string","description":"Cannot be supplied unless includeOther is true"},"includeNoneOfTheAbove":{"type":"boolean","default":false,"description":"Add a \"None of the above\" option"}},"required":["category","type","name","options"],"description":"A single-select or multi-select question"},"OptionScreenerQuestionResponse":{"allOf":[{"$ref":"#/components/schemas/OptionScreenerQuestion"},{"type":"object","properties":{"isRequired":{"type":"boolean","description":"Whether a response is required before the screener can be submitted"},"randomizeOrder":{"type":"boolean","description":"Whether options are shown in a random order per respondent"},"includeOther":{"type":"boolean","description":"Whether the question has a free-text \"Other\" option"},"otherDisplayText":{"type":"string","description":"The display text of the free-text \"Other\" option"},"includeNoneOfTheAbove":{"type":"boolean","description":"Whether the question has a \"None of the above\" option"},"id":{"type":"string","description":"The question id"},"workspaceId":{"type":"string","description":"The workspace that owns the question"},"questionTemplateId":{"type":"string","description":"Present for questions created from a template"}},"required":["isRequired","randomizeOrder","includeOther","includeNoneOfTheAbove","id","workspaceId"]}],"description":"A single-select or multi-select question"},"PageInfoArgs":{"type":"object","properties":{"startCursor":{"type":"string","description":"The cursor to start from"},"size":{"type":"number","exclusiveMinimum":0,"maximum":1000,"default":25,"description":"The number of items to return","example":10}},"description":"Pagination arguments. Use startCursor from the result of the endCursor of the response to get the next page. Pagination in reverse is not currently supported","example":{"size":10}},"PageInfoResponse":{"type":"object","properties":{"hasNextPage":{"type":"boolean","description":"Whether there are additional pages of results"},"hasPreviousPage":{"type":"boolean","description":"Whether there is a prior page of results"},"startCursor":{"type":"string","description":"The start of the current page of results"},"endCursor":{"type":"string","description":"The end of the current page of results. Use to fetch the next page"}},"required":["hasNextPage","hasPreviousPage"],"description":"Information about the current page"},"Participant":{"type":"object","properties":{"participantId":{"type":"string","description":"The ID of the participant"},"personId":{"type":"string","description":"The ID of the person"},"studyId":{"type":"string","description":"The ID of the study"},"email":{"type":["string","null"],"description":"The primary email of the participant"},"additionalEmails":{"type":"array","items":{"type":"string","format":"email"},"description":"The additional emails of the participant"},"phone":{"type":["string","null"],"description":"The primary phone of the participant"},"additionalPhones":{"type":"array","items":{"type":"string"},"description":"The additional phones of the participant"},"status":{"allOf":[{"$ref":"#/components/schemas/ParticipantStatus"},{"type":["string","null"],"description":"The status of the participant"}]},"invitedToStudyAt":{"type":["string","null"],"format":"date-time","description":"The date the participant was invited to the study"},"approvalStatus":{"$ref":"#/components/schemas/ParticipantApprovalStatus"},"approvedAt":{"type":["string","null"],"format":"date-time","description":"The date the participant was approved"},"screenerState":{"$ref":"#/components/schemas/ParticipantScreenerState"},"screenerSentAt":{"type":["string","null"],"format":"date-time","description":"The date the screener was sent"},"testCompletedAt":{"type":["string","null"],"format":"date-time","description":"The date the participant completed the unmoderated test"},"interviewStartTime":{"type":["string","null"],"format":"date-time","description":"The participant's interview start time"},"screenerResponseDate":{"type":["string","null"],"format":"date-time","description":"The date the screener response was submitted"},"addedToStudyAt":{"type":["string","null"],"format":"date-time","description":"The date the participant was added to the study"},"note":{"type":["object","null"],"properties":{"note":{"type":["string","null"],"description":"The note of the person"},"createdByUserId":{"type":["string","null"],"description":"The ID of the user who created the note"}},"required":["note","createdByUserId"],"description":"The note of the participant"}},"required":["participantId","personId","studyId","email","additionalEmails","phone","additionalPhones","status","invitedToStudyAt","approvalStatus","approvedAt","screenerState","screenerSentAt","testCompletedAt","interviewStartTime","screenerResponseDate","addedToStudyAt","note"],"description":"A study's participant information"},"ParticipantApprovalStatus":{"type":"string","enum":["HIDDEN","AWAITING_APPROVAL","APPROVED","INVITE_FAILED","REJECTED","REPORTED"],"description":"The approval status of the participant"},"ParticipantId":{"type":"string"},"ParticipantScreenerState":{"type":["string","null"],"enum":["SCREENER_SENT","SCREENER_COMPLETED","QUALIFIED","AUTO_QUALIFIED","NOT_QUALIFIED","AUTO_NOT_QUALIFIED",null],"description":"The screener state of the participant"},"ParticipantStatus":{"type":"string","enum":["NOT_STARTED","INVITE_SENT","NOT_ELIGIBLE","SCREENER_STARTED","SCREENER_COMPLETED","SCREENER_QUALIFIED","SCREENER_DISQUALIFIED","INTERVIEW_INVITE_SENT","INTERVIEW_SCHEDULED","INTERVIEW_COMPLETED","INTERVIEW_CANCELLED","INTERVIEW_NO_SHOWED","SURVEY_STARTED","SURVEY_COMPLETED","INCENTIVE_SENT","INCENTIVE_CLAIMED","INCENTIVE_SKIPPED","UNMODERATED_TEST_INVITE_SENT","UNMODERATED_TEST_STARTED","UNMODERATED_TEST_COMPLETED","COMPLETED_STUDY","CANCELLED","OPTED_OUT","EMAIL_SOFT_BOUNCED","EMAIL_HARD_BOUNCED"],"description":"The participant status before the change"},"ParticipantStatusEvent":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of this status-change event, stable across polls for client-side deduplication"},"participantId":{"type":"string","description":"The ID of the participant whose status changed"},"personId":{"type":"string","description":"The ID of the person the participant represents"},"studyId":{"type":"string","description":"The ID of the study the participant belongs to"},"previousStatus":{"$ref":"#/components/schemas/ParticipantStatus"},"newStatus":{"allOf":[{"$ref":"#/components/schemas/ParticipantStatus"},{"description":"The participant status after the change"}]},"updateMethod":{"$ref":"#/components/schemas/ParticipantStatusUpdateMethod"},"changedBy":{"type":["string","null"],"description":"The ID of the user who made the change, or null when the change was automated or made by the participant"},"changedAt":{"type":"string","format":"date-time","description":"When the status change occurred, in ISO 8601 format"}},"required":["id","participantId","personId","studyId","previousStatus","newStatus","updateMethod","changedBy","changedAt"],"description":"A single participant status-change event"},"ParticipantStatusEventFilter":{"type":"object","properties":{"studyIds":{"type":"array","items":{"type":"string"},"description":"Only include events for participants in these studies"},"teamIds":{"type":"array","items":{"type":"string"},"description":"Only include events for participants in studies belonging to any of these teams. Teams the caller cannot access are ignored."},"studyTypes":{"type":"array","items":{"$ref":"#/components/schemas/StudyType"},"description":"Only include events for studies of these types"},"studyStatuses":{"type":"array","items":{"$ref":"#/components/schemas/StudyStatus"},"description":"Only include events for studies in these statuses"}},"description":"Optional filters to narrow the participant status events"},"ParticipantStatusUpdateMethod":{"type":"string","enum":["AUTOMATED","MANUAL","PARTICIPANT","RALLY_INTERN_ENDPOINT"],"description":"How the participant status change was initiated"},"PeopleAiSearchResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/PeopleSearchResponse"},{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"suggestions":{"type":"array","items":{"type":"string"}},"filterGroup":{"$ref":"#/components/schemas/RootFilter"}},"required":["success"]}],"description":"Response for a search of people"},{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"message":{"type":"string","description":"Explanation when the prompt could not be turned into a search"},"suggestions":{"type":"array","items":{"type":"string"},"description":"Hints for rephrasing the prompt"}},"required":["success","message"]}],"description":"Response for AI search of people"},"PeopleSearchResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"},"errors":{"type":"array","items":{"type":"object","properties":{"errorCode":{"type":"string","enum":["UNAUTHORIZED"]},"propertyId":{"type":"string"}},"required":["errorCode","propertyId"]}}},"required":["results","total","pageInfo","errors"],"description":"Response for a search of people"},"Person":{"type":"object","properties":{"personId":{"type":"string","description":"The ID of the person"},"email":{"type":["string","null"],"description":"The email of the person"},"properties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"propertyType":{"type":"string","enum":["NUMBER"]},"propertyId":{"type":"string"},"value":{"type":["number","null"]}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["STRING"]},"propertyId":{"type":"string"},"value":{"type":["string","null"]}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["DATETIME"]},"propertyId":{"type":"string"},"value":{"type":["string","null"],"format":"date-time"}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["BOOLEAN"]},"propertyId":{"type":"string"},"value":{"type":["boolean","null"]}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["SINGLE_SELECT"]},"propertyId":{"type":"string"},"value":{"type":["array","null"],"prefixItems":[{"type":"string"}]}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["MULTI_SELECT"]},"propertyId":{"type":"string"},"value":{"type":["array","null"],"items":{"type":"string"}}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["LOCATION"]},"propertyId":{"type":"string"},"value":{"type":["object","null"],"properties":{"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"The latitude of the location"},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"The longitude of the location"},"country":{"$ref":"#/components/schemas/CountryCode"},"postalCode":{"type":"string","description":"The postal code of the location"},"admin1":{"type":"string","description":"The state/territory/administrative area level 1 of the location"},"admin2":{"type":"string","description":"The county/parish/borough/administrative area level 2 of the location"},"admin3":{"type":"string","description":"The city/municipality/administrative area level 3 of the location"}},"required":["latitude","longitude","country"],"description":"The value of a location property","example":{"latitude":37.7749,"longitude":-122.4194,"country":"US","postalCode":"94103","admin1":"CA","admin2":"San Francisco","admin3":"San Francisco"}}},"required":["propertyType","propertyId","value"]},{"type":"object","properties":{"propertyType":{"type":"string","enum":["ID_NAME_OBJECT"]},"propertyId":{"type":"string"},"value":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["propertyType","propertyId","value"]}],"description":"A property of a person, both internal and custom","example":{"propertyType":"STRING","propertyId":"cm0b4eokq000vbbsimwelll3u","value":"Blue"}}},"populationIds":{"type":"array","items":{"type":"string"},"description":"List of populationIds for populations the person is in"}},"required":["personId","email","properties","populationIds"],"description":"A person"},"PersonConsentSubmission":{"type":"object","properties":{"consentSubmissionId":{"type":"string","description":"The consent submission ID."},"consentFormId":{"type":["string","null"],"description":"The consent form ID the submission was made against."},"studyId":{"type":["string","null"],"description":"The study the consent submission belongs to, if any."},"submittedAt":{"type":"string","format":"date-time","description":"The timestamp when the consent submission was created, in ISO 8601 format."},"downloadUrl":{"type":"string","description":"Pre-signed S3 URL to download the consent submission PDF. Expires after 15 minutes."}},"required":["consentSubmissionId","consentFormId","studyId","submittedAt","downloadUrl"]},"PersonConsentSubmissionExportParams":{"type":"object","properties":{"personId":{"type":"string","description":"The person ID"}},"required":["personId"]},"PersonConsentSubmissionExportResponse":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Pre-signed S3 URL to download the consent submission PDF. Expires after 15 minutes."},"consentSubmissionId":{"type":"string","description":"The consent submission ID associated with the export."},"consentFormId":{"type":["string","null"],"description":"The consent form ID associated with the exported submission."},"submittedAt":{"type":"string","format":"date-time","description":"The timestamp when the consent submission was created, in ISO 8601 format."}},"required":["downloadUrl","consentSubmissionId","consentFormId","submittedAt"]},"PersonConsentSubmissionsParams":{"type":"object","properties":{"personId":{"type":"string","description":"The person ID"}},"required":["personId"]},"PersonConsentSubmissionsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PersonConsentSubmission"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]},"PersonProperty":{"type":"object","properties":{"propertyId":{"type":"string","description":"The unique identifier of the property"},"name":{"type":"string","description":"The name of the property"},"propertyType":{"$ref":"#/components/schemas/PropertyType"},"propertyOptions":{"type":"array","items":{"$ref":"#/components/schemas/PersonPropertyOption"},"description":"Options for a `SINGLE_SELECT` or `MULTI_SELECT` property. Empty for other property types."},"isUnique":{"type":"boolean","description":"Whether the property is unique across all people. Maximum of 10 across a workspace","maximum":10},"isPHI":{"type":"boolean","description":"Whether the property is PHI (Protected health information)"},"isPII":{"type":"boolean","description":"Whether the property is PII (Personally Identifiable Information)"},"description":{"type":["string","null"],"description":"The description of the property"},"propertyGroupId":{"type":["string","null"],"description":"The identifier of the property group this property belongs to. A property group is a collection of properties that apply to either all people in the workspace or a specific set of populations."}},"required":["propertyId","name","propertyType","propertyOptions","isUnique","isPHI","isPII","description","propertyGroupId"],"description":"An individual person property"},"PersonPropertyOption":{"type":"object","properties":{"propertyOptionId":{"type":"string"},"name":{"type":"string","description":"The name of the option"},"color":{"$ref":"#/components/schemas/PersonPropertyOptionColor"},"order":{"type":"string","description":"The order of the option. Sorted by this string value, ie: it can be a number","examples":["1","a","A"],"example":"1"}},"required":["propertyOptionId","name","color","order"],"description":"An individual person property option"},"PersonPropertyOptionColor":{"type":"string","enum":["GREY","YELLOW","BLUE","RED","GREEN","ORANGE"],"description":"The color of the option shown in the UI"},"PropertyGroup":{"type":"object","properties":{"propertyGroupId":{"type":"string","description":"The unique identifier of the property group"},"name":{"type":"string","description":"The name of the property group"},"scopeType":{"$ref":"#/components/schemas/PropertyGroupScopeType"},"populationIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the populations this property group is scoped to. Empty array if scopeType is ALL."},"propertyIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the properties in this property group"}},"required":["propertyGroupId","name","scopeType","populationIds","propertyIds"],"description":"A single property group"},"PropertyGroupId":{"type":"string","minLength":1,"description":"The ID of the property group"},"PropertyGroupScopeType":{"type":"string","enum":["ALL","SPECIFIC"],"description":"Whether the group applies to ALL people in the workspace or only SPECIFIC populations","example":"SPECIFIC"},"PropertyId":{"type":"string"},"PropertySearchRequest":{"type":"object","properties":{"searchQuery":{"type":"string","minLength":1,"description":"Text to search for across property names and values","example":"consent"},"propertyType":{"allOf":[{"$ref":"#/components/schemas/PropertyType"},{"description":"Filter results by property type"}]},"populationId":{"type":"string","minLength":1,"description":"Filter results by population id"},"propertyGroupId":{"type":"string","minLength":1,"description":"Filter results by property group id"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"description":"Search for properties in the workspace"},"PropertySearchResult":{"type":"object","properties":{"propertyId":{"type":"string","description":"The unique identifier of the property"},"name":{"type":"string","description":"The name of the property"},"propertyType":{"$ref":"#/components/schemas/PropertyType"},"description":{"type":["string","null"],"description":"The description of the property"},"propertyGroupId":{"type":["string","null"],"description":"The identifier of the property group this property belongs to. A property group is a collection of properties that apply to either all people in the workspace or a specific set of populations."},"propertyOptions":{"type":"array","items":{"$ref":"#/components/schemas/PersonPropertyOption"},"description":"Options for a `SINGLE_SELECT` or `MULTI_SELECT` property. Empty for other property types."}},"required":["propertyId","name","propertyType","description","propertyGroupId","propertyOptions"],"description":"A property returned by search"},"PropertyType":{"type":"string","enum":["STRING","NUMBER","DATETIME","BOOLEAN","SINGLE_SELECT","MULTI_SELECT","LOCATION"],"description":"The type of the property","example":"SINGLE_SELECT"},"PutDropdownScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["dropdown"]},"type":{"type":"string","enum":["DROPDOWN"],"description":"A dropdown question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected option"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"options":{"type":"array","items":{"$ref":"#/components/schemas/PutScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"}},"required":["category","type","name","options"],"additionalProperties":false,"description":"A dropdown question (no \"Other\" or \"None of the above\")"},"PutMatrixScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["matrix"]},"type":{"type":"string","enum":["MATRIX"],"description":"A matrix question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"columns":{"type":"array","items":{"type":"string","maxLength":40},"minItems":1,"maxItems":25,"description":"The shared column labels applied to every row"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/PutMatrixScreenerQuestionRow"},"minItems":1,"maxItems":25,"description":"The matrix rows"}},"required":["category","type","name","columns","rows"],"additionalProperties":false,"description":"A matrix question with rows and shared columns"},"PutMatrixScreenerQuestionRow":{"type":"object","properties":{"value":{"type":"string","maxLength":100,"description":"The row label"},"mappedToPropertyId":{"type":"string","description":"Map this row's response to a person property"},"columnToPropertyOptionId":{"type":"object","additionalProperties":{"type":"string"},"description":"Maps a column value to a property option id. Columns missing from this map are left unmapped."}},"required":["value"],"additionalProperties":false,"description":"A row of a matrix question"},"PutOptionScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["option"]},"type":{"type":"string","enum":["SINGLE_SELECT","MULTI_SELECT"],"description":"Whether respondents may select one option (SINGLE_SELECT) or several (MULTI_SELECT)"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected options"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"randomizeOrder":{"type":"boolean","default":false,"description":"Randomize the order options are shown to each respondent"},"includeOther":{"type":"boolean","default":false,"description":"Add a free-text \"Other\" option"},"otherDisplayText":{"type":"string","description":"Cannot be supplied unless includeOther is true"},"includeNoneOfTheAbove":{"type":"boolean","default":false,"description":"Add a \"None of the above\" option"},"options":{"type":"array","items":{"$ref":"#/components/schemas/PutScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"}},"required":["category","type","name","options"],"additionalProperties":false,"description":"A single-select or multi-select question"},"PutScreenerQuestion":{"oneOf":[{"$ref":"#/components/schemas/PutTemplateScreenerQuestion"},{"$ref":"#/components/schemas/PutSimpleScreenerQuestion"},{"$ref":"#/components/schemas/PutOptionScreenerQuestion"},{"$ref":"#/components/schemas/PutDropdownScreenerQuestion"},{"$ref":"#/components/schemas/PutMatrixScreenerQuestion"}],"discriminator":{"propertyName":"category","mapping":{"template":"#/components/schemas/PutTemplateScreenerQuestion","simple":"#/components/schemas/PutSimpleScreenerQuestion","option":"#/components/schemas/PutOptionScreenerQuestion","dropdown":"#/components/schemas/PutDropdownScreenerQuestion","matrix":"#/components/schemas/PutMatrixScreenerQuestion"}},"description":"A single question to create, discriminated by category"},"PutScreenerQuestionOptionValue":{"type":"object","properties":{"value":{"type":"string","description":"The display value of the option"},"mappedToPropertyOptionId":{"type":"string","description":"The property option this option maps to. Omit to leave the option unmapped when the question has a mappedToPropertyId."}},"required":["value"],"additionalProperties":false,"description":"An option for a select or dropdown question"},"PutSimpleScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["simple"]},"type":{"type":"string","enum":["SHORT_FORM","LONG_FORM","DATE","NUMBER"],"description":"Whether the question collects short text, long text, a date, or a number"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"}},"required":["category","type","name"],"additionalProperties":false,"description":"A short answer, long answer, date, or number question"},"PutTemplateScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["template"]},"questionTemplateId":{"type":"string","description":"The id of the workspace question template to instantiate"},"name":{"type":"string","description":"Overrides the template question prompt"},"description":{"type":"string","description":"Overrides the template question helper text"},"isRequired":{"type":"boolean","description":"Overrides whether a response is required"}},"required":["category","questionTemplateId"],"additionalProperties":false,"description":"A question created from a workspace question template. Only name, description, and isRequired may be overridden."},"RecruitmentPanelProvider":{"type":"string","enum":["RESPONDENT","USER_INTERVIEWS"],"description":"Set this to change the default recruitment panel provider when recruitment strategy is EXTERNAL. Defaults to User Interviews"},"RecruitmentStrategy":{"type":"string","enum":["IN_RALLY","EXTERNAL"],"description":"The recruitment strategy for the study. Required if not using a duplicate/study template"},"ResendIncentiveResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the incentive was resent"},"incentiveId":{"type":"string","description":"The ID of the incentive that was resent"}},"required":["success","incentiveId"],"description":"The result of resending an incentive"},"RootConsentFormFilter":{"allOf":[{"$ref":"#/components/schemas/RootFilter"},{"type":"object","properties":{}}],"description":"Filter options to search consent form submissions. Supports person, incentive, and participant property filters."},"RootFilter":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Filter"},{"$ref":"#/components/schemas/FilterGroup"}]},"maxItems":50},"sort":{"oneOf":[{"type":"object","properties":{"operator":{"type":"string","enum":["ASC","DESC"]},"propertyGroup":{"type":"string","enum":["PERSON"]},"propertyName":{"type":"string","enum":["PERSON_ID","NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","IMPORT_SOURCE","IMPORT_DATE","OPTED_OUT","LAST_CONTACT_DATE","STUDY_MEMBERSHIP","SEGMENT_MEMBERSHIP","POPULATION_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_SENT_LAST_YEAR","TOTAL_SENT_LAST_CALENDAR_YEAR","TOTAL_SENT_ALL_TIME","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","LAST_INTERVIEW_DATE","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","TOTAL_NUMBER_OF_NO_SHOW_INTERVIEWS","SHOW_RATE","LAST_UNMOD_TEST_DATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","LAST_SURVEY_DATE","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","PARTICIPANT_RATING","TOTAL_RATINGS","CONTACT_STATUS","CONTACT_STATUS_UPDATE_DATE","IMPORT_UPLOAD_LIST","CONSENT_SUBMISSIONS","LAST_CHANGED_AT","SIGNUP_REFERRAL_CODES","SCREENER_STATUS","SCREENER_SUBMITTED_AT","CONSENT_FORM_WAS_SUBMITTED","FORM_SIGNEDUP_AT","FORM_APPROVAL_STATUS","FORM_FIRST_SIGNUP_REFERRAL_CODE","FORM_LAST_SIGNUP_REFERRAL_CODE","PANEL_MEMBERSHIP"]}},"required":["operator","propertyGroup","propertyName"]},{"type":"object","properties":{"operator":{"type":"string","enum":["ASC","DESC"]},"propertyGroup":{"type":"string","enum":["INCENTIVE"]},"propertyName":{"type":"string","enum":["EMAIL","TYPE","AMOUNT","STATUS","STUDY","SENDER","SENT_AT","INCENTIVE_BUDGET","TEAM","CUSTOM_INCENTIVE","CUSTOM_INCENTIVE_VALUE"]}},"required":["operator","propertyGroup","propertyName"]},{"type":"object","properties":{"operator":{"type":"string","enum":["ASC","DESC"]},"propertyGroup":{"type":"string","enum":["PARTICIPANT"]},"propertyName":{"type":"string","enum":["SCREENER_STATUS","STATE","SCREENER_SENT_AT","SCREENER_SUBMITTED_AT","TEST_COMPLETED_AT","INTERVIEW_START_TIME","INTERVIEW_START_DATE","INCENTIVE_PAID","CONSENT_FORM_SUBMITTED","PARTICIPANT_ID","APPROVAL_STATUS","RECRUITMENT_CRITERIA_MATCH","STUDY_FIRST_SIGNUP_REFERRAL_CODE","STUDY_LAST_SIGNUP_REFERRAL_CODE","STATUS","STUDY_QUOTA_GROUP","STUDY_SHORTLIST_STATUS","STUDY_NOTE","BOOKING_ROLE"]}},"required":["operator","propertyGroup","propertyName"]}],"description":"Sorting to apply to the search"}},"required":["filters"],"description":"Filter option to search for people"},"RootMessageFilter":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/MessageFilter"},{"$ref":"#/components/schemas/MessageFilterGroup"}]},"maxItems":50}},"required":["filters"],"description":"Filter options to search for messages. Supports person, incentive, participant, and message property filters.","example":{"operator":"AND","filters":[{"message":{"propertyType":"SINGLE_SELECT","propertyName":"EMAIL_STATUS","operator":"IS","value":"DELIVERED"}},{"message":{"propertyType":"DATETIME","propertyName":"SENT_AT","operator":"IS_WITHIN","value":"NUMBER_OF_DAYS_AGO","amount":7}},{"person":{"propertyType":"STRING","propertyName":"EMAIL","operator":"CONTAINS","value":"@example.com"}}]}},"RootSignupFormFilter":{"allOf":[{"$ref":"#/components/schemas/RootFilter"},{"type":"object","properties":{}}],"description":"Filter options to search signup form submissions. Supports person, incentive, and participant property filters."},"RootStudyFilter":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/Filter_STUDY_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_STUDY_NumberProperty"},{"$ref":"#/components/schemas/Filter_STUDY_StringProperty"},{"$ref":"#/components/schemas/Filter_STUDY_SingleSelectProperty"},{"$ref":"#/components/schemas/Filter_STUDY_MultiSelectProperty"},{"$ref":"#/components/schemas/StudyFilterGroup"}]},"maxItems":50}},"required":["filters"],"description":"Filter option to search for studies"},"Screener":{"type":"object","properties":{"id":{"type":"string","description":"The screener id"},"workspaceId":{"type":"string","description":"The workspace that owns the screener"},"studyId":{"type":"string","description":"The study the screener belongs to"},"type":{"$ref":"#/components/schemas/ScreenerType"},"showSchedulerToQualified":{"type":"boolean","description":"Whether the interview scheduler is shown to respondents who qualify"},"qualifyByDefault":{"type":"boolean","description":"Whether respondents qualify unless a rule disqualifies them"},"externalSurveyId":{"type":"string","description":"The id of the linked external survey, when the screener uses one"},"surveyMonkeyCollectorId":{"type":"string","description":"The SurveyMonkey collector id, when the screener uses a SurveyMonkey survey"},"externalSurveySetupStatus":{"$ref":"#/components/schemas/ExternalSurveySetupStatus"},"externalSurveySetupErrorCode":{"type":"string","description":"An error code describing why external survey setup failed, when applicable"},"externalSurveySetupUpdatedAt":{"type":"string","format":"date-time","description":"When the external survey setup status last changed (ISO 8601)"},"customLinkUrl":{"type":"string","description":"The custom link respondents use to take an externally hosted screener"},"customLinkTokensJson":{"type":"string","description":"JSON describing the query parameters appended to the custom link"},"createdAt":{"type":"string","format":"date-time","description":"When the screener was created (ISO 8601)"},"updatedAt":{"type":"string","format":"date-time","description":"When the screener was last updated (ISO 8601)"}},"required":["id","workspaceId","studyId","type","showSchedulerToQualified","qualifyByDefault","createdAt","updatedAt"],"description":"A study's screener top-level properties"},"ScreenerPatch":{"type":"object","properties":{"showSchedulerToQualified":{"type":"boolean","description":"Show the interview scheduler to respondents who qualify"},"qualifyByDefault":{"type":"boolean","description":"Qualify respondents unless a rule disqualifies them"}},"additionalProperties":false,"description":"Update a screener's top-level properties. Only the provided fields change; question updates must go through PUT."},"ScreenerPutBody":{"type":"object","properties":{"showSchedulerToQualified":{"type":"boolean","default":false,"description":"Show the interview scheduler to respondents who qualify. Omitted values reset to false (full replace)."},"qualifyByDefault":{"type":"boolean","default":false,"description":"Qualify respondents unless a rule disqualifies them. Omitted values reset to false (full replace)."},"questions":{"type":"array","items":{"$ref":"#/components/schemas/PutScreenerQuestion"},"minItems":1,"maxItems":50,"description":"The ordered list of screener questions"}},"required":["questions"],"additionalProperties":false,"description":"The complete screener configuration. PUT fully replaces the existing screener: question ids are regenerated and omitted top-level properties reset to their defaults."},"ScreenerQualificationLogic":{"type":"string","enum":["QUALIFY","DISQUALIFY"],"description":"Omit for jump or end actions that only route the response"},"ScreenerQuestionDefinition":{"type":"object","properties":{"screenerQuestionId":{"type":"string","description":"The ID of the screener question"},"name":{"type":"string","description":"The question text shown to participants"},"order":{"type":"number","description":"Display order of the question on the screener"}},"required":["screenerQuestionId","name","order"],"description":"Published screener question metadata for interpreting responses"},"ScreenerQuestionId":{"type":"string"},"ScreenerQuestionOptionValue":{"type":"object","properties":{"value":{"type":"string","description":"The display value of the option"},"mappedToPropertyOptionId":{"type":"string","description":"The property option this option maps to. Omit to leave the option unmapped when the question has a mappedToPropertyId."}},"required":["value"],"description":"An option for a select or dropdown question"},"ScreenerQuestionResponse":{"oneOf":[{"$ref":"#/components/schemas/SimpleScreenerQuestionResponse"},{"$ref":"#/components/schemas/OptionScreenerQuestionResponse"},{"$ref":"#/components/schemas/DropdownScreenerQuestionResponse"},{"$ref":"#/components/schemas/MatrixScreenerQuestionResponse"}],"discriminator":{"propertyName":"category","mapping":{"simple":"#/components/schemas/SimpleScreenerQuestionResponse","option":"#/components/schemas/OptionScreenerQuestionResponse","dropdown":"#/components/schemas/DropdownScreenerQuestionResponse","matrix":"#/components/schemas/MatrixScreenerQuestionResponse"}},"description":"A screener question. Template-sourced questions are returned expanded into their concrete category."},"ScreenerQuestionResponseItem":{"type":"object","properties":{"screenerQuestionId":{"type":"string","description":"The ID of the screener question"},"values":{"type":"array","items":{"type":"string"},"description":"The response values (e.g. text, selected option values)"},"selectedOptionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for multi-choice questions"}},"required":["screenerQuestionId","values","selectedOptionIds"],"description":"A single screener or survey question response"},"ScreenerQuestionRule":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/ScreenerRuleOperator"},"optionValues":{"type":"array","items":{"type":"string"},"description":"The option values the operator compares against. Must reference question options, or \"OTHER\"/\"NONE\" when enabled."},"action":{"$ref":"#/components/schemas/ScreenerRuleAction"},"qualificationLogic":{"$ref":"#/components/schemas/ScreenerQualificationLogic"}},"required":["operator","optionValues"],"additionalProperties":false,"description":"Qualification or skip logic for a select or dropdown question"},"ScreenerResponse":{"allOf":[{"$ref":"#/components/schemas/Screener"},{"type":"object","properties":{"questions":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionResponse"},"description":"The screener questions, in display order"}},"required":["questions"]}],"description":"A screener with its top-level properties and all questions"},"ScreenerRuleAction":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["END_SCREENER"],"description":"End the screener when the rule matches"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["JUMP"],"description":"Jump to another question when the rule matches"},"index":{"type":"integer","description":"The zero-based index of the question to jump to. Must reference a question after this one; use END_SCREENER to route past the last question."}},"required":["type","index"],"additionalProperties":false}],"description":"What happens when a rule matches. Omit to continue to the next question."},"ScreenerRuleOperator":{"type":"string","enum":["IS_EXACTLY","DOESNT_EQUAL","INCLUDES_ANY_OF","INCLUDES_ALL_OF","NOT_INCLUDES_ANY_OF"],"description":"The comparison applied by a screener question rule"},"ScreenerSubmissionState":{"type":"string","enum":["NONE","QUALIFIED","DISQUALIFIED"],"description":"The qualification state of the screener submission"},"ScreenerSubmissionWithResponses":{"type":"object","properties":{"submissionId":{"type":"string","description":"The ID of the screener submission"},"personId":{"type":"string","description":"The ID of the person who submitted"},"participantId":{"type":["string","null"],"description":"The ID of the participant if linked to the study"},"state":{"$ref":"#/components/schemas/ScreenerSubmissionState"},"submittedAt":{"type":"string","format":"date-time","description":"When the screener was submitted"},"responses":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionResponseItem"},"description":"The question-level responses for this submission"}},"required":["submissionId","personId","participantId","state","submittedAt","responses"],"description":"A screener/survey submission with all of its question responses"},"ScreenerType":{"type":"string","enum":["RALLY","SURVEY_MONKEY","TYPEFORM","QUALTRICS","CUSTOM_LINK"],"description":"The type of screener"},"SelectOptionLimitWarning":{"type":"object","properties":{"type":{"type":"string","enum":["SELECT_OPTION_LIMIT_REACHED"],"description":"New select or multi-select options were not added because the property reached its option limit. The people were still imported; only the new values were left off."},"propertyId":{"type":"string","description":"The person property that reached its option limit."},"droppedOptionNames":{"type":"array","items":{"type":"string"},"description":"A sample of the option names that were not added because the property is at its option limit. Holds at most 20 names per property, so it may not list every dropped value."}},"required":["type","propertyId","droppedOptionNames"]},"SendIncentiveResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the incentive send was accepted"},"isAsync":{"type":"boolean","description":"Whether the send is processed asynchronously. Larger sends are queued and processed in the background"},"bulkActionRequestId":{"type":["string","null"],"description":"The ID of the background bulk action when the send is processed asynchronously"},"hasInsufficientFundsForIncentives":{"type":"boolean","description":"True when the budget does not have enough funds"},"totalAvailableBalanceCents":{"type":["number","null"],"description":"The available budget balance in cents"},"skippedParticipantIds":{"type":"array","items":{"type":"string"},"description":"Participants that were skipped because they already had an outstanding incentive for the study. Empty when allowDuplicate is true"}},"required":["success","isAsync","bulkActionRequestId"],"description":"The result of sending an incentive"},"SignupFormSubmission":{"type":"object","properties":{"submissionId":{"type":"string","description":"The ID of the signup form submission"},"signupFormId":{"type":"string","description":"The ID of the signup form"},"personId":{"type":"string","description":"The ID of the person"},"approvalStatus":{"$ref":"#/components/schemas/SignupFormSubmissionApprovalStatus"},"submittedAt":{"type":"string","format":"date-time","description":"The date the form was submitted"},"consentSubmissionId":{"type":["string","null"],"description":"The ID of the associated consent submission, if any"}},"required":["submissionId","signupFormId","personId","approvalStatus","submittedAt","consentSubmissionId"],"description":"A signup form submission"},"SignupFormSubmissionApprovalStatus":{"type":"string","enum":["PENDING_REVIEW","APPROVED","REJECTED"],"description":"The approval status of the submission"},"SimpleScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["simple"]},"type":{"type":"string","enum":["SHORT_FORM","LONG_FORM","DATE","NUMBER"],"description":"Whether the question collects short text, long text, a date, or a number"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"}},"required":["category","type","name"],"description":"A short answer, long answer, date, or number question"},"SimpleScreenerQuestionResponse":{"allOf":[{"$ref":"#/components/schemas/SimpleScreenerQuestion"},{"type":"object","properties":{"isRequired":{"type":"boolean","description":"Whether a response is required before the screener can be submitted"},"id":{"type":"string","description":"The question id"},"workspaceId":{"type":"string","description":"The workspace that owns the question"},"questionTemplateId":{"type":"string","description":"Present for questions created from a template"}},"required":["isRequired","id","workspaceId"]}],"description":"A short answer, long answer, date, or number question"},"SingleSelectOperator":{"type":"string","enum":["IS","IS_NOT","IS_ANY_OF","IS_NONE_OF","IS_EMPTY","IS_NOT_EMPTY"]},"StringOperator":{"type":"string","enum":["IS","IS_NOT","CONTAINS","DOES_NOT_CONTAIN","STARS_WITH","ENDS_WITH","IS_EMPTY","IS_NOT_EMPTY"]},"Study":{"type":"object","properties":{"studyId":{"type":"string"},"studyType":{"$ref":"#/components/schemas/StudyType"},"recruitmentStrategy":{"allOf":[{"$ref":"#/components/schemas/RecruitmentStrategy"},{"description":"The recruitment strategy for the study"}]},"status":{"$ref":"#/components/schemas/StudyStatus"},"studyPlan":{"$ref":"#/components/schemas/StudyPlan"},"createdAt":{"type":"string","format":"date-time"},"createdFromTemplateId":{"type":["string","null"],"description":"The ID of the template this study was created from, or null if not created from a template"},"owners":{"type":"array","items":{"$ref":"#/components/schemas/StudyOwner"}}},"required":["studyId","studyType","recruitmentStrategy","status","studyPlan","createdAt","createdFromTemplateId","owners"],"description":"Study object"},"StudyFilterGroup":{"type":"object","properties":{"operator":{"type":"string","enum":["AND","OR"],"default":"AND"},"filters":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/Filter_STUDY_DateTimeProperty"},{"$ref":"#/components/schemas/Filter_STUDY_NumberProperty"},{"$ref":"#/components/schemas/Filter_STUDY_StringProperty"},{"$ref":"#/components/schemas/Filter_STUDY_SingleSelectProperty"},{"$ref":"#/components/schemas/Filter_STUDY_MultiSelectProperty"}],"discriminator":{"propertyName":"propertyType","mapping":{"DATETIME":"#/components/schemas/Filter_STUDY_DateTimeProperty","NUMBER":"#/components/schemas/Filter_STUDY_NumberProperty","STRING":"#/components/schemas/Filter_STUDY_StringProperty","SINGLE_SELECT":"#/components/schemas/Filter_STUDY_SingleSelectProperty","MULTI_SELECT":"#/components/schemas/Filter_STUDY_MultiSelectProperty"}}}}},"required":["filters"],"description":"A group of filters"},"StudyId":{"type":"string"},"StudyOwner":{"type":"object","properties":{"userId":{"type":"string"},"emailAccountId":{"type":"string"},"fullname":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["userId","emailAccountId","fullname","email"],"description":"Study owner object"},"StudyPlan":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The internal name of the study"},"externalName":{"type":["string","null"],"description":"The external name of the study"},"description":{"type":["string","null"],"description":"The internal description of the study"},"externalDescription":{"type":["string","null"],"description":"The external description of the study"},"startDate":{"anyOf":[{"type":"string","format":"date","description":"The start date of the study in YYYY-MM-DD format","example":"2025-01-01"},{"type":"string","format":"date-time","description":"The start date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-01T00:00:00Z","deprecated":true},{"type":"null"}]},"endDate":{"anyOf":[{"type":"string","format":"date","description":"The end date of the study in YYYY-MM-DD format","example":"2025-01-02"},{"type":"string","format":"date-time","description":"The end date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-02T00:00:00Z","deprecated":true},{"type":"null"}]},"researchPlanUrl":{"type":["string","null"],"description":"The URL of the research plan"},"participationLimit":{"type":["number","null"],"default":10,"description":"The participation limit of the study"},"consentFormId":{"type":["string","null"],"description":"The ID of the consent form"},"incentive":{"$ref":"#/components/schemas/StudyPlanIncentive"},"includeScreener":{"type":"boolean","description":"Whether to include a screener. If type is `SURVEY` the default is true, if not then false"},"brandingConfigId":{"type":["string","null"],"description":"The ID of the branding configuration. Setting it mirrors changing the branding in-app: it also updates the study landing page's button color and, when the branding config has a workspace email, the study's booking-confirmation, booking-cancellation, interview-reminder, and interview-reschedule email defaults. On update, pass null to clear the study's branding."},"language":{"$ref":"#/components/schemas/LanguageCode"},"scheduler":{"$ref":"#/components/schemas/StudyPlanScheduler"}},"required":["name","externalName","description","externalDescription","startDate","endDate","researchPlanUrl","participationLimit","consentFormId","incentive","includeScreener","brandingConfigId","language"],"description":"Study plan object"},"StudyPlanCreateIncentive":{"type":"object","properties":{"incentiveType":{"$ref":"#/components/schemas/InputIncentiveType"},"incentiveBudgetId":{"type":"string","description":"The ID of the incentive budget. Not used for CUSTOM"},"amount":{"type":"number","description":"The amount of the incentive. If type is CUSTOM use this for MONETARY types instead of default value"},"currency":{"$ref":"#/components/schemas/IncentiveCurrencyType"},"customIncentiveId":{"type":"string","description":"If type is CUSTOM then the ID of the custom incentive"},"defaultCustomIncentiveValue":{"type":"string","description":"If type is CUSTOM then the default value of the custom incentive"}},"required":["incentiveType"],"description":"Object required to add an incentive to a study"},"StudyPlanIncentive":{"type":["object","null"],"properties":{"incentiveType":{"$ref":"#/components/schemas/IncentiveType"},"incentiveBudgetId":{"type":["string","null"],"description":"The ID of the incentive budget"},"amount":{"type":["number","null"],"description":"The amount of the incentive"},"currency":{"allOf":[{"$ref":"#/components/schemas/IncentiveCurrencyType"},{"description":"The currency of the incentive"}]},"customIncentiveId":{"type":["string","null"],"description":"If type is CUSTOM then the ID of the custom incentive"},"defaultCustomIncentiveValue":{"type":["string","null"],"description":"If type is CUSTOM then the default value of the custom incentive"}},"required":["incentiveType","incentiveBudgetId","amount","customIncentiveId","defaultCustomIncentiveValue"],"description":"The incentive details for the study"},"StudyPlanScheduler":{"type":["object","null"],"properties":{"interviewDurationMinutes":{"type":"integer","description":"The planned interview duration in minutes.","example":60}},"required":["interviewDurationMinutes"],"description":"Scheduler configuration for the study. Read-only. Populated only when `studyType` is `INTERVIEWS` and the study has a configured scheduler; otherwise the parent `scheduler` field is null (i.e. for `SURVEY`, `UNMODERATED_TEST`, `GROUP_INTERVIEW`, or `INTERVIEWS` studies without a scheduler row)."},"StudyStatus":{"type":"string","enum":["DRAFT","ACTIVE","PAUSED","CLOSED"],"description":"The status of the study"},"StudyStatusEvent":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of this status-change event, stable across polls for client-side deduplication."},"studyId":{"type":"string","description":"The ID of the study whose status changed."},"fromStatus":{"allOf":[{"$ref":"#/components/schemas/StudyStatus"},{"description":"The status the study transitioned from."}]},"toStatus":{"allOf":[{"$ref":"#/components/schemas/StudyStatus"},{"description":"The status the study transitioned to."}]},"changedBy":{"type":["string","null"],"description":"The ID of the user that made the change, or null when the change was made by the system."},"changedAt":{"type":"string","format":"date-time","description":"When the status change occurred, in ISO 8601 in UTC."},"source":{"$ref":"#/components/schemas/StudyStatusTransitionSource"}},"required":["id","studyId","fromStatus","toStatus","changedBy","changedAt","source"],"description":"A single study status-change event"},"StudyStatusEventFilter":{"type":"object","properties":{"from":{"type":"string","format":"date-time","description":"Start of the time window, inclusive, in ISO 8601 in UTC. Required.","example":"2025-01-01T00:00:00Z"},"to":{"type":"string","format":"date-time","description":"End of the time window, inclusive, in ISO 8601 in UTC. Required.","example":"2025-02-01T00:00:00Z"},"studyIds":{"type":"array","items":{"type":"string"},"description":"Only return events for these studies."},"teamIds":{"type":"array","items":{"type":"string"},"description":"Only return events for studies belonging to these teams. Limited to teams you can access."},"studyTypes":{"type":"array","items":{"$ref":"#/components/schemas/StudyType"},"description":"Only return events for studies of these types."}},"required":["from","to"],"description":"Filter for study status-change events. The from/to time window is required."},"StudyStatusTransitionSource":{"type":"string","enum":["API","GRAPHQL","SYSTEM"],"description":"What initiated the status change. API is a change made through the public REST API, GRAPHQL a change made from within the Rally app, and SYSTEM an automated change such as an auto-close."},"StudyType":{"type":"string","enum":["SURVEY","INTERVIEWS","UNMODERATED_TEST","GROUP_INTERVIEW"],"description":"The type of study"},"StudyWithScreener":{"allOf":[{"$ref":"#/components/schemas/Study"},{"type":"object","properties":{"screener":{"anyOf":[{"$ref":"#/components/schemas/ScreenerResponse"},{"type":"null"}],"description":"The study's screener with all of its questions. Null when the study has no screener or the caller cannot read screeners. Not included in list responses."}},"required":["screener"]}],"description":"Study object including its screener"},"SyncWarning":{"oneOf":[{"$ref":"#/components/schemas/SelectOptionLimitWarning"}],"discriminator":{"propertyName":"type","mapping":{"SELECT_OPTION_LIMIT_REACHED":"#/components/schemas/SelectOptionLimitWarning"}},"description":"Something that kept part of the data from landing even though the records themselves were written. Discriminated by type."},"UpdateDropdownScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["dropdown"]},"type":{"type":"string","enum":["DROPDOWN"],"description":"A dropdown question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected option"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"options":{"type":"array","items":{"$ref":"#/components/schemas/PutScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"},"questionTemplateId":{"type":"string","description":"Required when updating a question that was created from a template: pass the existing template id to keep the link. Cannot be added to or changed on other questions."}},"required":["category","type","name","options"],"additionalProperties":false},"UpdateMatrixScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["matrix"]},"type":{"type":"string","enum":["MATRIX"],"description":"A matrix question type"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"columns":{"type":"array","items":{"type":"string","maxLength":40},"minItems":1,"maxItems":25,"description":"The shared column labels applied to every row"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/PutMatrixScreenerQuestionRow"},"minItems":1,"maxItems":25,"description":"The matrix rows"},"questionTemplateId":{"type":"string","description":"Required when updating a question that was created from a template: pass the existing template id to keep the link. Cannot be added to or changed on other questions."}},"required":["category","type","name","columns","rows"],"additionalProperties":false},"UpdateOptionScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["option"]},"type":{"type":"string","enum":["SINGLE_SELECT","MULTI_SELECT"],"description":"Whether respondents may select one option (SINGLE_SELECT) or several (MULTI_SELECT)"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionRule"},"description":"Qualification or skip logic evaluated against the selected options"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"randomizeOrder":{"type":"boolean","default":false,"description":"Randomize the order options are shown to each respondent"},"includeOther":{"type":"boolean","default":false,"description":"Add a free-text \"Other\" option"},"otherDisplayText":{"type":"string","description":"Cannot be supplied unless includeOther is true"},"includeNoneOfTheAbove":{"type":"boolean","default":false,"description":"Add a \"None of the above\" option"},"options":{"type":"array","items":{"$ref":"#/components/schemas/PutScreenerQuestionOptionValue"},"minItems":1,"maxItems":25,"description":"The selectable options, in display order"},"questionTemplateId":{"type":"string","description":"Required when updating a question that was created from a template: pass the existing template id to keep the link. Cannot be added to or changed on other questions."}},"required":["category","type","name","options"],"additionalProperties":false},"UpdateScreenerQuestionBody":{"oneOf":[{"$ref":"#/components/schemas/UpdateSimpleScreenerQuestion"},{"$ref":"#/components/schemas/UpdateOptionScreenerQuestion"},{"$ref":"#/components/schemas/UpdateDropdownScreenerQuestion"},{"$ref":"#/components/schemas/UpdateMatrixScreenerQuestion"}],"discriminator":{"propertyName":"category","mapping":{"simple":"#/components/schemas/UpdateSimpleScreenerQuestion","option":"#/components/schemas/UpdateOptionScreenerQuestion","dropdown":"#/components/schemas/UpdateDropdownScreenerQuestion","matrix":"#/components/schemas/UpdateMatrixScreenerQuestion"}},"description":"The full replacement body for a single question, discriminated by category. Template-sourced questions are updated through their concrete category with questionTemplateId set. Matrix questions are addressed by their parent question id."},"UpdateSimpleScreenerQuestion":{"type":"object","properties":{"category":{"type":"string","enum":["simple"]},"type":{"type":"string","enum":["SHORT_FORM","LONG_FORM","DATE","NUMBER"],"description":"Whether the question collects short text, long text, a date, or a number"},"name":{"type":"string","description":"The question prompt"},"description":{"type":"string","description":"Optional helper text shown beneath the question prompt"},"isRequired":{"type":"boolean","default":true,"description":"Whether a response is required before the screener can be submitted"},"mappedToPropertyId":{"type":"string","description":"Map the response to a person property"},"questionTemplateId":{"type":"string","description":"Required when updating a question that was created from a template: pass the existing template id to keep the link. Cannot be added to or changed on other questions."}},"required":["category","type","name"],"additionalProperties":false}},"parameters":{"PropertyId":{"schema":{"$ref":"#/components/schemas/PropertyId"},"required":true,"name":"propertyId","in":"path"},"PropertyGroupId":{"schema":{"$ref":"#/components/schemas/PropertyGroupId"},"required":true,"description":"The ID of the property group","name":"propertyGroupId","in":"path"},"StudyId":{"schema":{"$ref":"#/components/schemas/StudyId"},"required":true,"name":"studyId","in":"path"},"ParticipantId":{"schema":{"$ref":"#/components/schemas/ParticipantId"},"required":true,"name":"participantId","in":"path"},"InterviewBookingId":{"schema":{"$ref":"#/components/schemas/InterviewBookingId"},"required":true,"name":"interviewBookingId","in":"path"},"ObserverRoomId":{"schema":{"$ref":"#/components/schemas/ObserverRoomId"},"required":true,"name":"observerRoomId","in":"path"},"ObserverRoomBotId":{"schema":{"$ref":"#/components/schemas/ObserverRoomBotId"},"required":true,"name":"botId","in":"path"},"ScreenerQuestionId":{"schema":{"$ref":"#/components/schemas/ScreenerQuestionId"},"required":true,"name":"questionId","in":"path"}}},"paths":{"/activities/import":{"post":{"tags":["Backfills"],"summary":"Import activities","description":"Imports activities into your workspace. If you'd like access to this route, please reach out to your Customer Success rep.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"peopleActivities":{"type":"array","items":{"type":"object","properties":{"personId":{"type":"string","description":"The ID of the person"},"activities":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["SCREENER_COMPLETED","INTERVIEW_SCHEDULED","INTERVIEW_RESCHEDULED","INTERVIEW_UPDATED","INTERVIEW_CANCELED","NO_SHOW_INTERVIEW","INTERVIEW_COMPLETED","UNMODERATED_TEST_COMPLETED","SURVEY_COMPLETED","FOCUS_GROUP_COMPLETED","AD_HOC_CONTACT_MADE","DOCUMENT_SIGNED","OPTED_OUT","SCHEDULE_EMAIL_SENT","SCREENER_EMAIL_SENT","UNMODERATED_TEST_EMAIL_SENT"],"description":"The type of activity\n\n  Study Invites:\n  These tie into the “Interview Invites Over Time” reporting metric\n  * SCHEDULE_EMAIL_SENT\n  * SCREENER_EMAIL_SENT\n  * UNMODERATED_TEST_EMAIL_SENT\n\n  Participant Activities: \n  * SCREENER_COMPLETED\n  * INTERVIEW_SCHEDULED\n  * INTERVIEW_RESCHEDULED\n  * INTERVIEW_UPDATED\n  * INTERVIEW_CANCELED\n  * NO_SHOW_INTERVIEW\n  * INTERVIEW_COMPLETED\n  * UNMODERATED_TEST_COMPLETED\n  * SURVEY_COMPLETED\n  * FOCUS_GROUP_COMPLETED\n\n  General Person Activities:\n  * AD_HOC_CONTACT_MADE\n  * DOCUMENT_SIGNED\n  * OPTED_OUT\n  "},"activityAt":{"type":"string","format":"date-time","description":"The time the activity occurred"},"participantId":{"type":"string","description":"The ID of the participant. If a participant exists and has a study associated with it then this will impact study metrics"}},"required":["type","activityAt"]},"description":"An array of activities for the person"}},"required":["personId","activities"]},"description":"An array of person IDs with an array of activities. Max 1000 activities across all people"}},"required":["peopleActivities"]}}}},"responses":{"202":{"description":"Incentive search response","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"peopleCount":{"type":"number","description":"The number of people that activities are being imported for"},"activitiesCount":{"type":"number","description":"The total number of activities being imported"},"importId":{"type":"string","description":"A unique identifier for the import, can be used to look up status and will be included in the webhook"},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}},"required":["message","path"]},"description":"Partial errors that occurred during the import. This follows the same error schema as a 400 error but this list are the only ones that were not imported, the rest were"}},"required":["message","peopleCount","activitiesCount","importId"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/person":{"get":{"tags":["Person"],"deprecated":true,"summary":"Returns a person in your workspace","description":"Returns a person by email if they exist. Deprecated, use `GET /people/{personId}/opted-out` instead to get their status","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","format":"email","description":"A valid email address such as dev@rallyuxr.com"},"required":true,"description":"A valid email address such as dev@rallyuxr.com","name":"email","in":"query"}],"responses":{"200":{"description":"Successfully retrieved the person in the workspace.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"optedOut":{"type":"boolean"}},"required":["email","optedOut"]}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"post":{"tags":["Person"],"deprecated":true,"summary":"Updates a person's opted out status","description":"This will in turn update their contact status. Deprecated, use `PUT /people/{personId}/opted-out` instead","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"optedOut":{"type":"boolean"}},"required":["email","optedOut"]}}}},"responses":{"200":{"description":"Successfully updated the person's optedOut property.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"optedOut":{"type":"boolean"}},"required":["email","optedOut"]}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/person/delete":{"post":{"tags":["Person"],"deprecated":true,"security":[{"bearerAuth":[]}],"summary":"Deletes people by email","description":"Deletes all data for a set of persons by email within 90 days. Deprecated, use `POST /people/delete` or `DELETE /people/{personId}` instead","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"}}},"required":["emails"],"description":"List of email addresses to be deleted.","example":{"emails":["email1@gmail.com","email2@gmail.com","email3@gmail.com"]}}}}},"responses":{"200":{"description":"Successfully scheduled delete of all persons with provided emails.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"personsDeletedCount":{"type":"integer","description":"Number of person records softly deleted."}},"required":["personsDeletedCount"]}}}},"400":{"description":"Request contained errors such as empty emails field, non-array emails field, non-string email values, or too many emails. Also includes invalid email formats.","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"message":{"type":"string","example":"Emails field cannot be empty."}}},{"type":"object","properties":{"message":{"type":"string","example":"Invalid request body: emails must be an array."}}},{"type":"object","properties":{"message":{"type":"string","example":"All emails must be strings."}}},{"type":"object","properties":{"message":{"type":"string","example":"Cannot process more than 100 emails at a time."}}},{"type":"object","properties":{"message":{"type":"string"},"invalidEmails":{"type":"array","items":{"type":"string"}},"invalidCount":{"type":"integer"}}}]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/messages/emails/search":{"post":{"operationId":"searchEmails","tags":["Messages"],"summary":"Search for emails","description":"Search for email in your workspace using advanced filters. Supports filtering by email properties including ID, recipient, sender, status, type, subject, dates, and related entities (study, panel, participant, campaigns, teams, populations). Filters can be combined using AND/OR logic operators for complex queries.\n\n\n  **Required permissions:**\n- View emails\n- Access All People directory","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootMessageFilter"},"studyId":{"type":"string","description":"Filter messages by study ID"},"teamId":{"type":"string","description":"Filter messages by team ID"},"userId":{"type":"string","description":"Filter messages by sender user ID"},"populationId":{"type":"string","description":"Filter messages by population ID"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"description":"Search for messages"}}}},"responses":{"200":{"description":"Successfully retrieved emails","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailsSearchResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/consent/{consentFormId}/submissions/search":{"post":{"operationId":"searchConsentFormSubmissions","tags":["Forms"],"summary":"Search submissions for a consent form","description":"Search submissions for a specific consent form. Returns submission data including person ID, submission source, and submission date.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the consent form"},"required":true,"description":"The ID of the consent form","in":"path","name":"consentFormId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootConsentFormFilter"},"studyId":{"type":"string","description":"Study ID for participant property filters (required when filtering by participant)."},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}}}}}},"responses":{"200":{"description":"The consent form submissions","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ConsentFormSubmission"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/signups/{signupFormId}/submissions/search":{"post":{"operationId":"searchSignupFormSubmissions","tags":["Forms"],"summary":"Search submissions for a signup form","description":"Search submissions for a specific signup form. Returns submission data including person ID, approval status, and submission date.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the signup form"},"required":true,"description":"The ID of the signup form","in":"path","name":"signupFormId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootSignupFormFilter"},"studyId":{"type":"string","description":"Study ID for participant property filters (required when filtering by participant)."},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}}}}}},"responses":{"200":{"description":"The signup form submissions","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/SignupFormSubmission"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/imports/{importId}":{"get":{"operationId":"getImport","tags":["Imports"],"summary":"Gets an import by id","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the import"},"required":true,"description":"The ID of the import","in":"path","name":"importId"}],"responses":{"200":{"description":"Information about the import","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"importId":{"type":"string","description":"The ID of the import"},"type":{"type":"string","enum":["API","MCP","ASSISTANT","ACTIVITIES","CSV"],"description":"Type of the import."},"status":{"type":"string","enum":["NOT_STARTED","UPLOADING","ERROR","COMPLETED"],"description":"Status of the import."},"personCount":{"type":"integer","description":"The number of people that were imported"},"failedRecords":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"personId":{"type":"string"}},"required":["personId"]},{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}]}},"partialReasons":{"type":"array","items":{"type":"string","enum":["RECORDS_FAILED","SELECT_OPTION_LIMIT_REACHED"]},"description":"Why a completed import is partial. RECORDS_FAILED means some records were not imported (see failedRecords). SELECT_OPTION_LIMIT_REACHED means people were imported but new select option values were left off because the property is at its option limit (see warnings). Empty when the import fully succeeded, is still running, or failed."},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/SyncWarning"},"description":"Detail for partial reasons other than failed records. Empty when there were none."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp the import finished."}},"required":["importId","type","status","personCount","failedRecords","partialReasons","warnings","updatedAt"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/search":{"post":{"tags":["Incentives"],"summary":"Get paginated list of incentives","description":"Gets all incentives in your workspace","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"studyId":{"type":"string","description":"The ID of the study"},"filter":{"$ref":"#/components/schemas/RootFilter"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"description":"Search parameters to get incentives within your workspace"}}}},"responses":{"200":{"description":"Incentive search response","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Incentive"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives":{"get":{"tags":["Incentives"],"summary":"List incentive IDs","description":"Returns a paginated list of incentive IDs in your workspace, optionally filtered by study, with the team that owned each incentive's study when it was sent. Use the IDs with the resend and cancel endpoints.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start from"},"required":false,"description":"The cursor to start from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":50,"default":10,"description":"The number of items to return","example":10},"required":false,"description":"The number of items to return","name":"size","in":"query"},{"schema":{"type":"string","description":"When provided, only incentives for this study are returned"},"required":false,"description":"When provided, only incentives for this study are returned","name":"studyId","in":"query"}],"responses":{"200":{"description":"A paginated list of incentive IDs","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListIncentivesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"post":{"tags":["Incentives"],"summary":"Send an incentive to study participants","description":"Sends a standard (money / gift card) incentive to one or more study participants, mirroring the manual \"Send Incentive\" action in Rally. Larger sends are processed asynchronously.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"studyId":{"type":"string","description":"The ID of the study the participants belong to"},"participantIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"The IDs of the study participants to send the incentive to. A maximum of 10 participants may be sent to per request."},"amountCents":{"type":"integer","exclusiveMinimum":0,"description":"Amount in cents for primary participants. Defaults to the study's incentive amount. Monetary incentives only"},"standbyAmountCents":{"type":"integer","exclusiveMinimum":0,"description":"Amount in cents for standby participants who never took the session. Defaults to the study's standby amount, else to amountCents"},"currency":{"type":"string","enum":["AUD","CAD","EUR","GBP","NZD","USD"],"description":"Override for the incentive currency. Defaults to the study's configured incentive currency. Applies to monetary incentives"},"incentiveBudgetId":{"type":"string","description":"Override for the incentive budget to draw from. Defaults to the study's configured budget"},"updateToParticipantStatusId":{"type":"string","description":"Override for the status participants are moved to after the incentive is sent. Defaults to the study's Incentive Sent status"},"allowDuplicate":{"type":"boolean","description":"By default, participants who already have an outstanding (not canceled or expired) incentive for this study are skipped and returned in skippedParticipantIds. Set to true to send anyway, allowing multiple incentives per participant"}},"required":["studyId","participantIds"],"description":"Send the monetary incentive configured on a study to one or more of its participants. This mirrors the manual \"Send Incentive\" action in Rally: the incentive amount, email content, and sender all come from the study configuration, with amount / currency as the only overrides. Studies configured with a custom (logged) incentive must use POST /incentives/custom/log instead."}}}},"responses":{"202":{"description":"The incentive send was accepted","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendIncentiveResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/{incentiveId}/resend":{"post":{"tags":["Incentives"],"summary":"Resend an incentive","description":"Resends the incentive email for an already-sent incentive. Only eligible for provider-backed incentives that have not been canceled or expired.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"incentiveId","in":"path"}],"responses":{"200":{"description":"The incentive was resent","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendIncentiveResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/{incentiveId}/cancel":{"post":{"tags":["Incentives"],"summary":"Cancel an incentive","description":"Cancels an already-sent incentive. Provider-backed incentives are voided; custom incentives are marked canceled.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"incentiveId","in":"path"}],"responses":{"200":{"description":"The incentive was canceled","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelIncentiveResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/custom/log":{"post":{"tags":["Incentives"],"summary":"Log a custom incentive for study participants","description":"Logs the study's configured custom incentive (for example swag or cash handed out outside Rally) against one or more participants. Custom incentives are recorded in Rally, not sent by email.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"studyId":{"type":"string","description":"The ID of the study the participants belong to"},"participantIds":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"The IDs of the study participants to log the custom incentive against. A maximum of 10 participants may be logged per request."},"amountCents":{"type":"integer","exclusiveMinimum":0,"description":"Override for the logged value in cents. Only applies when the study's custom incentive is a monetary value. Defaults to the study's configured amount"},"customIncentiveOptionId":{"type":"string","description":"Override for the selected custom incentive option. Only applies when the study's custom incentive is single-select. Defaults to the study's configured default option"},"customIncentiveValue":{"type":"string","description":"Override for the logged custom incentive value. Only applies when the study's custom incentive is not single-select. Defaults to the study's configured default value"},"allowDuplicate":{"type":"boolean","description":"By default, participants who already have an outstanding custom incentive for this study are skipped and returned in skippedParticipantIds. Set to true to log anyway, allowing multiple custom incentives per participant"}},"required":["studyId","participantIds"],"description":"Log the custom incentive configured on a study (for example swag or cash handed out to people outside Rally) against one or more of its participants. Custom incentives are recorded in Rally, not sent; the custom incentive itself comes from the study configuration, with the option / value / amount as the only overrides."}}}},"responses":{"202":{"description":"The custom incentive log was accepted","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogCustomIncentiveResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/custom":{"get":{"tags":["Incentives"],"summary":"Get paginated list of custom incentives","description":"Gets all custom incentives in your workspace","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start from"},"required":false,"description":"The cursor to start from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":10,"description":"The number of items to return","example":10},"required":false,"description":"The number of items to return","name":"size","in":"query"}],"responses":{"200":{"description":"Custom incentive search response","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"customIncentiveId":{"type":"string","description":"The id of the custom incentive"},"name":{"type":"string","description":"The name of the custom incentive"},"description":{"type":["string","null"],"description":"The description of the custom incentive"},"type":{"type":"string","enum":["STRING","NUMBER","MONETARY","SINGLE_SELECT"],"description":"The type of the custom incentive"}},"required":["customIncentiveId","name","description","type"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/custom/{customIncentiveId}":{"get":{"tags":["Incentives"],"summary":"Get a custom incentive by id","description":"Gets a custom incentive by id","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The id of the custom incentive"},"required":true,"description":"The id of the custom incentive","in":"path","name":"customIncentiveId"}],"responses":{"200":{"description":"Custom incentive response","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomIncentive"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/incentives/{incentiveId}":{"get":{"tags":["Incentives"],"summary":"Get an incentive by id","description":"Gets an incentive by id","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"incentiveId","in":"path"}],"responses":{"200":{"description":"Incentive response","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Incentive"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/participant-status-events/search":{"post":{"tags":["Participant Status Events"],"summary":"Get a paginated list of participant status-change events.","description":"Get a time-windowed, cursor-paginated list of participant status-change events across your workspace. Poll this endpoint with a moving time window to keep an external system in sync with participant status transitions.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","format":"date-time","description":"Inclusive start of the time window (ISO 8601). Filters on when the status change occurred.","example":"2025-01-01T00:00:00Z"},"to":{"type":"string","format":"date-time","description":"Inclusive end of the time window (ISO 8601). Filters on when the status change occurred.","example":"2025-01-02T00:00:00Z"},"filter":{"$ref":"#/components/schemas/ParticipantStatusEventFilter"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"required":["from","to"]}}}},"responses":{"200":{"description":"The participant status-change events","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantStatusEvent"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/ai/people/search":{"post":{"operationId":"agentSearchPeople","tags":["AI"],"summary":"AI search for people","description":"Search for people using a natural language prompt. Returns results and optional filter suggestions.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"description":"Natural language prompt to search for people","example":"People in California who have done at least 3 studies"},"attachProperties":{"type":"array","items":{"type":"string"},"maxItems":25,"description":"List of the propertyIds of custom properties to attach to the response for each person","example":["EMAIL","FIRST_NAME","LAST_NAME"]},"allowlistInternalProperties":{"type":"array","items":{"type":"string","enum":["NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","IMPORT_SOURCE","IMPORT_DATE","OPTED_OUT","LAST_CONTACT_DATE","TOTAL_SENT_LAST_YEAR","TOTAL_SENT_LAST_CALENDAR_YEAR","TOTAL_SENT_ALL_TIME","INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","LAST_INTERVIEW_DATE","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","LAST_UNMOD_TEST_DATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","LAST_SURVEY_DATE","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","CONTACT_STATUS","POPULATION_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","SIGNUP_REFERRAL_CODES","LAST_CHANGED_AT"]},"description":"List of rally properties to include in the response. If this or blocklistInternalProperties is not included we will return all internal properties","example":["NAME","CONTACT_STATUS","OPTED_OUT"]},"blocklistInternalProperties":{"type":"array","items":{"type":"string","enum":["NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","IMPORT_SOURCE","IMPORT_DATE","OPTED_OUT","LAST_CONTACT_DATE","TOTAL_SENT_LAST_YEAR","TOTAL_SENT_LAST_CALENDAR_YEAR","TOTAL_SENT_ALL_TIME","INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","LAST_INTERVIEW_DATE","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","LAST_UNMOD_TEST_DATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","LAST_SURVEY_DATE","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","CONTACT_STATUS","POPULATION_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","SIGNUP_REFERRAL_CODES","LAST_CHANGED_AT"]},"description":"List of rally properties to exclude from the response"},"studyId":{"type":"string","description":"The ID of the study to filter people by"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"required":["prompt"],"description":"AI search for people"}}}},"responses":{"200":{"description":"Successfully retrieved people","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleAiSearchResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/search":{"post":{"operationId":"searchPeople","tags":["People"],"summary":"Search for people","description":"Search for people in your workspace. You can filter by studies, segments, and panels. Or just retrieve additional metadata about a list of person ids","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"attachProperties":{"type":"array","items":{"type":"string"},"maxItems":25,"description":"List of the propertyIds of custom properties to attach to the response for each person","example":["EMAIL","FIRST_NAME","LAST_NAME"]},"allowlistInternalProperties":{"type":"array","items":{"type":"string","enum":["NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","IMPORT_SOURCE","IMPORT_DATE","OPTED_OUT","LAST_CONTACT_DATE","TOTAL_SENT_LAST_YEAR","TOTAL_SENT_LAST_CALENDAR_YEAR","TOTAL_SENT_ALL_TIME","INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","LAST_INTERVIEW_DATE","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","LAST_UNMOD_TEST_DATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","LAST_SURVEY_DATE","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","CONTACT_STATUS","POPULATION_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","SIGNUP_REFERRAL_CODES","LAST_CHANGED_AT"]},"description":"List of rally properties to include in the response. If this or blocklistInternalProperties is not included we will return all internal properties","example":["NAME","CONTACT_STATUS","OPTED_OUT"]},"blocklistInternalProperties":{"type":"array","items":{"type":"string","enum":["NAME","FIRST_NAME","LAST_NAME","EMAIL","PHONE","IMPORT_SOURCE","IMPORT_DATE","OPTED_OUT","LAST_CONTACT_DATE","TOTAL_SENT_LAST_YEAR","TOTAL_SENT_LAST_CALENDAR_YEAR","TOTAL_SENT_ALL_TIME","INVITED_TO_STUDY","INVITED_TO_STUDY_L30","INVITED_TO_STUDY_L90","INVITED_TO_STUDY_L365","TOTAL_NUMBER_OF_CONTACT","TOTAL_NUMBER_OF_CONTACT_L30","TOTAL_NUMBER_OF_CONTACT_L90","TOTAL_NUMBER_OF_CONTACT_L365","LAST_INTERVIEW_DATE","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L30","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L90","TOTAL_NUMBER_OF_INTERVIEWS_COMPLETED_L365","LAST_UNMOD_TEST_DATE","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L30","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L90","TOTAL_NUMBER_OF_UNMOD_TESTS_COMPLETED_L365","LAST_SURVEY_DATE","TOTAL_NUMBER_OF_SURVEYS_COMPLETED","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L30","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L90","TOTAL_NUMBER_OF_SURVEYS_COMPLETED_L365","CONTACT_STATUS","POPULATION_MEMBERSHIP","POPULATION_LIST_MEMBERSHIP","SIGNUP_REFERRAL_CODES","LAST_CHANGED_AT"]},"description":"List of rally properties to exclude from the response"},"segmentIds":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"List of segment IDs to filter people by","deprecated":true},"studyIds":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"List of study IDs to filter people by","deprecated":true},"panelIds":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"List of panel IDs to filter people by","deprecated":true},"peopleIds":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"List of person IDs to filter people by"},"studyId":{"type":"string","description":"The ID of the study to filter people by"},"filter":{"allOf":[{"$ref":"#/components/schemas/RootFilter"},{"description":"Filters to apply to the search. This and the deprecated top level filters cannot be used at the same time"}]},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"description":"Search for people","example":{"attachProperties":["custom_property_1"],"filter":{"operator":"AND","filters":[{"customProperty":{"propertyType":"MULTI_SELECT","propertyGroup":"CUSTOM_PROPERTY","propertyName":"CUSTOM_PROPERTY","propertyId":"custom_property_1","operator":"CONTAINS","values":["custom_property_option_1"]}}]},"pageInfo":{"size":20}}}}}},"responses":{"200":{"description":"Successfully retrieved people","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PeopleSearchResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/import":{"post":{"tags":["People"],"description":"\nInternal properties are on the person object and custom properties can be specified either with the id of the property or an object that contains the name and property type. \n  If a property with that name already exists then it will be used with *no* modification, if it does not exist then then property will be created before the import begins.","summary":"Import people","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportPeopleBody"}}}},"responses":{"202":{"description":"Successfully began importing people, with the total count returned","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"count":{"type":"number"},"importId":{"type":["string","null"],"description":"A unique identifier for the import, can be used to look up status and will be included in the webhook"}},"required":["message","count","importId"],"description":"Response for importing people"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/delete":{"post":{"tags":["People"],"summary":"Delete people","description":"Delete people by id or email.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"personIds":{"type":"array","items":{"type":"string"},"maxItems":100,"description":"People to be deleted by id"}},"required":["personIds"]},{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"maxItems":100,"description":"People to be deleted by email"}},"required":["emails"]}],"description":"Unique identifier of the person to be deleted, either personId or by email lookup","example":{"emails":["dev@rallyuxr.com"]},"examples":[{"personIds":["cm0b4eokq000vbbsimwelll3u"]},{"emails":["dev@rallyuxr.com"]}]}}}},"responses":{"202":{"description":"Count of people marked for deletion","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"count":{"type":"number"}},"required":["message","count"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/{personId}":{"delete":{"tags":["People"],"summary":"Delete a person","description":"Delete a single person by only id","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The ID of the person"},"required":true,"description":"The ID of the person","in":"path","name":"personId"}],"responses":{"202":{"description":"Successfully marked person for deletion","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/{personIdOrEmail}/opted-out":{"get":{"tags":["People"],"summary":"Get a person's opted out status by ID or email","description":"Pass either the person ID or email to get the opted out status","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"anyOf":[{"type":"string","description":"The ID of the person"},{"type":"string","format":"email","description":"The email of the person"}],"description":"The id or email of the person. The id is the internal id of the person or if the email passed is valid then it will be used for lookup","example":"dev@rallyuxr.com","examples":["cm0b4eokq000vbbsimwelll3u","dev@rallyuxr.com"]},"required":true,"description":"The id or email of the person. The id is the internal id of the person or if the email passed is valid then it will be used for lookup","name":"personIdOrEmail","in":"path"}],"responses":{"200":{"description":"The person","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"personId":{"type":"string","description":"The ID of the person"},"email":{"type":"string","description":"The email of the person"},"isOptedOut":{"type":"boolean","description":"Whether the person is opted out of research"}},"required":["personId","email","isOptedOut"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"put":{"tags":["People"],"summary":"Update a person's opted out status","description":"Pass either the person ID or email to update the opted out status","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"anyOf":[{"type":"string","description":"The ID of the person"},{"type":"string","format":"email","description":"The email of the person"}],"description":"The id or email of the person. The id is the internal id of the person or if the email passed is valid then it will be used for lookup","example":"dev@rallyuxr.com","examples":["cm0b4eokq000vbbsimwelll3u","dev@rallyuxr.com"]},"required":true,"description":"The id or email of the person. The id is the internal id of the person or if the email passed is valid then it will be used for lookup","name":"personIdOrEmail","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"isOptedOut":{"type":"boolean","description":"Whether the person is opted out of research"}},"required":["isOptedOut"]}}}},"responses":{"200":{"description":"The person","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"personId":{"type":"string","description":"The ID of the person"},"isOptedOut":{"type":"boolean","description":"Whether the person is opted out of research"},"updatedAt":{"type":"string","format":"date-time"}},"required":["personId","isOptedOut","updatedAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/populations":{"get":{"tags":["Populations"],"summary":"Paginated list of population in your workspace","description":"Gets all populations in your workspace","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":25,"description":"The number of items to fetch","example":25},"required":false,"description":"The number of items to fetch","name":"size","in":"query"}],"responses":{"200":{"description":"The populations","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"populationId":{"type":"string","description":"The ID of the population"},"name":{"type":["string","null"],"description":"The name of the population"},"description":{"type":["string","null"],"description":"The description of the population"}},"required":["populationId","name","description"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/properties/search":{"post":{"tags":["Person Properties"],"summary":"Search properties by name or value","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertySearchRequest"}}}},"responses":{"200":{"description":"The matching properties","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PropertySearchResult"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/properties/import":{"post":{"tags":["Person Properties"],"summary":"Create multiple new person properties","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AddPersonProperty"},"maxItems":10,"description":"Input object for adding multiple person properties"}}}},"responses":{"200":{"description":"The created person properties","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"personProperty":{"$ref":"#/components/schemas/PersonProperty"},"isAsync":{"type":"boolean","description":"If there is an async action as a result of updating existing people in the workspace"},"bulkActionUserRequestId":{"type":"string","description":"The id of the bulk action user request if there is an async action as a result of updating existing people in the workspace"}},"required":["personProperty","isAsync"]},"description":"The person properties that were created"},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}},"name":{"type":"string","description":"The name of the property that failed to create"}},"required":["message","path","name"]},"description":"The properties that failed to create"}},"required":["results","errors"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/properties":{"get":{"tags":["Person Properties"],"summary":"Get all person properties in your workspace","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":10,"description":"The number of items to fetch","example":10},"required":false,"description":"The number of items to fetch","name":"size","in":"query"}],"responses":{"200":{"description":"The person properties","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PersonProperty"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/properties/delete":{"post":{"tags":["Person Properties"],"summary":"Delete person properties in bulk","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"propertyIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the properties to delete"}},"required":["propertyIds"]}}}},"responses":{"200":{"description":"Result of deletion","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"array","items":{"type":"string"},"description":"The IDs of the properties that were deleted"},"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"}]}}},"required":["message","path"]},"description":"Partial errors that occurred during deletion"}},"required":["deleted"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/properties/{propertyId}":{"get":{"tags":["Person Properties"],"summary":"Get a person property by ID","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"propertyId","in":"path"}],"responses":{"200":{"description":"The person property","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonProperty"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"delete":{"tags":["Person Properties"],"summary":"Deletes a person property by ID","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"propertyId","in":"path"}],"responses":{"200":{"description":"Result of deletion","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"The message indicating the property was deleted"}},"required":["message"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"put":{"tags":["Person Properties"],"summary":"Update a person property by ID","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"propertyId","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditPersonProperty"}}}},"responses":{"200":{"description":"The updated person property","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonProperty"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/property-groups":{"get":{"tags":["Person Properties"],"summary":"Get all person property groups in your workspace","description":"Returns all property groups in your workspace, optionally filtered by population.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"description":"If provided, only return groups scoped to this population. Will return groups with scope ALL."},"required":false,"description":"If provided, only return groups scoped to this population. Will return groups with scope ALL.","name":"populationId","in":"query"}],"responses":{"200":{"description":"The property groups","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAllPropertyGroupsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/property-groups/{propertyGroupId}":{"get":{"tags":["Person Properties"],"summary":"Get a person property group by ID","description":"Returns a single property group in your workspace, including the IDs of its properties.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/PropertyGroupId"}],"responses":{"200":{"description":"The property group","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSinglePropertyGroupResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/property-groups/{propertyGroupId}/properties":{"get":{"tags":["Person Properties"],"summary":"Get the properties in a person property group","description":"Returns a paginated list of the person properties belonging to the given property group.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/PropertyGroupId"},{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":25,"description":"The number of properties to fetch","example":25},"required":false,"description":"The number of properties to fetch","name":"size","in":"query"}],"responses":{"200":{"description":"The properties in the property group","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/PersonProperty"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/segments/search":{"post":{"tags":["Segments"],"summary":"Paginated list of segments in your workspace","description":"Gets all segments in your workspace. Filtering currently not supported","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}}}}}},"responses":{"200":{"description":"The segments","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"segmentId":{"type":"string","description":"The ID of the segment"},"name":{"type":["string","null"],"description":"The name of the segment"},"type":{"type":"string","enum":["EVERYONE","SHARED","PERSONAL"],"description":"The type of the segment"}},"required":["segmentId","name","type"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies":{"post":{"tags":["Studies"],"summary":"Create a new study","description":"Create a new study in your workspace. This can only be a draft study, certain features not supported and require updating in the UI","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStudyInput"}}}},"responses":{"201":{"description":"The created study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"studyId":{"type":"string"}},"required":["studyId"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/search":{"post":{"tags":["Studies"],"summary":"Get paginated list of studies in your workspace.","description":"Get a paginated list of studies in your workspace","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootStudyFilter"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}}}}}},"responses":{"200":{"description":"The studies metadata","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Study"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}":{"put":{"tags":["Studies"],"summary":"Update a study","description":"Update a study in your workspace. All data returned from a GET on a study needs to be included or will be overwritten. Certain features not supported and require updating in the UI","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"studyPlan":{"$ref":"#/components/schemas/StudyPlan"}},"required":["studyPlan"]}}}},"responses":{"200":{"description":"The updated study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudyWithScreener"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"patch":{"tags":["Studies"],"summary":"Update a study","description":"Update a study in your workspace. Only the fields provided will be updated. Certain features not supported and require updating in the UI","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"studyPlan":{"type":"object","properties":{"externalName":{"type":"string","description":"The external name of the study"},"description":{"type":"string","description":"The internal description of the study"},"startDate":{"anyOf":[{"type":"string","format":"date","description":"The start date of the study in YYYY-MM-DD format","example":"2025-01-01"},{"type":"string","format":"date-time","description":"The start date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-01T00:00:00Z","deprecated":true}]},"endDate":{"anyOf":[{"type":"string","format":"date","description":"The end date of the study in YYYY-MM-DD format","example":"2025-01-02"},{"type":"string","format":"date-time","description":"The end date of the study in ISO 8601 in UTC(with no offset). The time is truncated","example":"2025-01-02T00:00:00Z","deprecated":true}]},"researchPlanUrl":{"type":"string","description":"The URL of the research plan"},"participationLimit":{"type":"number","default":10,"description":"The participation limit of the study"},"consentFormId":{"type":"string","description":"The ID of the consent form"},"incentive":{"type":["object","null"],"properties":{"incentiveBudgetId":{"type":"string","description":"The ID of the incentive budget. Not used for CUSTOM"},"amount":{"type":"number","description":"The amount of the incentive. If type is CUSTOM use this for MONETARY types instead of default value"},"currency":{"$ref":"#/components/schemas/IncentiveCurrencyType"},"customIncentiveId":{"type":"string","description":"If type is CUSTOM then the ID of the custom incentive"},"defaultCustomIncentiveValue":{"type":"string","description":"If type is CUSTOM then the default value of the custom incentive"},"incentiveType":{"$ref":"#/components/schemas/InputIncentiveType"}}},"includeScreener":{"type":"boolean","description":"Whether to include a screener. If type is `SURVEY` the default is true, if not then false"},"brandingConfigId":{"type":["string","null"],"description":"The ID of the branding configuration. Setting it mirrors changing the branding in-app: it also updates the study landing page's button color and, when the branding config has a workspace email, the study's booking-confirmation, booking-cancellation, interview-reminder, and interview-reschedule email defaults. On update, pass null to clear the study's branding."},"language":{"$ref":"#/components/schemas/LanguageCode"},"name":{"type":"string","description":"The internal name of the study"},"externalDescription":{"type":"string","description":"The external description of the study"}}}}}}}},"responses":{"200":{"description":"The updated study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudyWithScreener"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"get":{"tags":["Studies"],"summary":"Get a study by ID","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"responses":{"200":{"description":"The study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudyWithScreener"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/status":{"post":{"tags":["Studies"],"summary":"Update a study status","description":"Update the status of a study in your workspace. This is the only way to programatically change a study's status","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["PAUSED","CLOSED"],"description":"Statuses a study can be updated to via the API"}},"required":["status"]}}}},"responses":{"200":{"description":"The updated study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Study"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/responses/search":{"post":{"tags":["Studies"],"summary":"Search screener/survey responses for a study","description":"Get a paginated list of screener or survey submissions and their question-level responses for a study. Optionally include question definitions to map question IDs to labels.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"includeQuestions":{"type":"boolean","default":false,"description":"When true, the response includes a questions array (id, name, order) for the study screener"},"pageInfo":{"allOf":[{"$ref":"#/components/schemas/PageInfoArgs"},{"description":"Pagination: size and optional startCursor (submission id)"}]}}}}}},"responses":{"200":{"description":"The study responses","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerSubmissionWithResponses"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/ScreenerQuestionDefinition"},"description":"Present when includeQuestions was true on the request; maps screenerQuestionId in responses to question text"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/participants/search":{"post":{"tags":["Participants"],"summary":"Paginated list of participants in a study","description":"Get a paginated list of participants in a study","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootFilter"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}}}}}},"responses":{"200":{"description":"The participants","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Participant"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/participants/count":{"post":{"tags":["Participants"],"summary":"Count participants in a study","description":"Get the total number of participants in a study matching the filter criteria, without returning individual participant records.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/RootFilter"}}}}}},"responses":{"200":{"description":"The participant count","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"size":{"type":"number","minimum":0,"description":"The number of participants in the study matching the filter critera"}},"required":["size"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/participants/import":{"post":{"tags":["Participants"],"summary":"Import participants to a study","description":"Import persons into a study. Supports all import properties within a person and also adds them as a participant. If the person is found then they are updated with any information included in here. \nInternal properties are on the person object and custom properties can be specified either with the id of the property or an object that contains the name and property type. \n  If a property with that name already exists then it will be used with *no* modification, if it does not exist then then property will be created before the import begins.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportPeopleBody"}}}},"responses":{"202":{"description":"The participants","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"count":{"type":"number"},"importId":{"type":["string","null"],"description":"A unique identifier for the import, can be used to look up status and will be included in the webhook"}},"required":["message","count","importId"],"description":"Response for importing people"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/participants/{participantId}":{"get":{"tags":["Participants"],"summary":"Get a participant by ID","description":"Get a participant by ID","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ParticipantId"}],"responses":{"200":{"description":"The participant","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Participant"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/participants/{participantId}/notes":{"patch":{"tags":["Participants"],"summary":"Append a note to a participant","description":"Append a note to a participant. If no note exists, a new one will be created with the provided note","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ParticipantId"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","description":"The note to append to a participant"}},"required":["note"]}}}},"responses":{"200":{"description":"The updated or created note","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":["string","null"],"description":"The note of the person"},"createdByUserId":{"type":["string","null"],"description":"The ID of the user who created the note"}},"required":["note","createdByUserId"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/templates":{"get":{"tags":["Studies"],"summary":"Get a paginated list of study templates","description":"Get a paginated list of study templates","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":10,"description":"The number of items to fetch","example":10},"required":false,"description":"The number of items to fetch","name":"size","in":"query"}],"responses":{"200":{"description":"The study templates","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"studyType":{"$ref":"#/components/schemas/StudyType"},"recruitmentStrategy":{"allOf":[{"$ref":"#/components/schemas/RecruitmentStrategy"},{"description":"The recruitment strategy for the study"}]},"studyPlan":{"$ref":"#/components/schemas/StudyPlan"}},"required":["id","name","description","studyType","recruitmentStrategy","studyPlan"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/interviews":{"get":{"tags":["Studies"],"summary":"Get a paginated list of interviews in a study","description":"Get a paginated list of interviews in a study","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"schema":{"type":"string","description":"The cursor to start from"},"required":false,"description":"The cursor to start from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":25,"description":"The number of items to return","example":10},"required":false,"description":"The number of items to return","name":"size","in":"query"},{"schema":{"anyOf":[{"type":"array","items":{"type":"string","enum":["SCHEDULED","CANCELED","COMPLETED","NO_SHOWED"]}},{"type":"string","enum":["SCHEDULED","CANCELED","COMPLETED","NO_SHOWED"]}],"description":"The states of the interview bookings to filter by. If nothing is provided, all states will be included."},"required":false,"description":"The states of the interview bookings to filter by. If nothing is provided, all states will be included.","name":"bookingStates","in":"query"},{"schema":{"type":"string","enum":["PRIMARY","STANDBY"],"description":"Return only interviews with this role. Omit to return both PRIMARY and STANDBY rows. Group interview studies have no STANDBY rows."},"required":false,"description":"Return only interviews with this role. Omit to return both PRIMARY and STANDBY rows. Group interview studies have no STANDBY rows.","name":"role","in":"query"}],"responses":{"200":{"description":"The interviews","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"interviewBookingId":{"type":"string","description":"The ID of the interview"},"studyId":{"type":"string","description":"The ID of the study"},"state":{"type":"string","enum":["SCHEDULED","CANCELED","COMPLETED","NO_SHOWED"]},"role":{"type":"string","enum":["PRIMARY","STANDBY"],"description":"PRIMARY holds the slot. STANDBY is a backup seat on the same slot as another interview (its primary), not an additional interview: the standby participant is admitted only if the primary does not show. Counting interviews for a study should count PRIMARY rows only."},"waitingRoomStatus":{"type":["string","null"],"enum":["WAITING","ADMITTED","JOINED","RELEASED",null],"description":"Where this participant stands in the session's waiting room, on studies that use one: WAITING until the host acts, ADMITTED once let in, JOINED once they took the seat, RELEASED when the other seat on the slot took it. Null on studies without a waiting room."},"startTime":{"type":["string","null"],"format":"date-time"},"endTime":{"type":["string","null"],"format":"date-time"},"timezone":{"type":["string","null"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"conferenceType":{"type":["string","null"],"enum":["NONE","ZOOM","GOOGLE_MEET","CALENDLY","CUSTOM","MICROSOFT_TEAMS",null]},"conferenceUrl":{"type":["string","null"],"description":"The URL of the conference/meeting"},"observerRoomId":{"type":["string","null"]},"participants":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["PARTICIPANT"]},"participantId":{"type":"string"}},"required":["email","rsvpStatus","type","participantId"]}},"hosts":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["HOST"]},"userId":{"type":["string","null"]}},"required":["email","rsvpStatus","type","userId"]}},"guests":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["GUEST"]},"userId":{"type":["string","null"]}},"required":["email","rsvpStatus","type","userId"]}}},"required":["interviewBookingId","studyId","state","role","waitingRoomStatus","startTime","endTime","timezone","title","description","conferenceType","conferenceUrl","observerRoomId","participants","hosts","guests"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/interviews/{interviewBookingId}":{"get":{"tags":["Studies"],"summary":"Get an interview by ID","description":"Get an interview by ID","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/InterviewBookingId"}],"responses":{"200":{"description":"The interview","content":{"application/json":{"schema":{"type":"object","properties":{"interviewBookingId":{"type":"string","description":"The ID of the interview"},"studyId":{"type":"string","description":"The ID of the study"},"state":{"type":"string","enum":["SCHEDULED","CANCELED","COMPLETED","NO_SHOWED"]},"role":{"type":"string","enum":["PRIMARY","STANDBY"],"description":"PRIMARY holds the slot. STANDBY is a backup seat on the same slot as another interview (its primary), not an additional interview: the standby participant is admitted only if the primary does not show. Counting interviews for a study should count PRIMARY rows only."},"waitingRoomStatus":{"type":["string","null"],"enum":["WAITING","ADMITTED","JOINED","RELEASED",null],"description":"Where this participant stands in the session's waiting room, on studies that use one: WAITING until the host acts, ADMITTED once let in, JOINED once they took the seat, RELEASED when the other seat on the slot took it. Null on studies without a waiting room."},"startTime":{"type":["string","null"],"format":"date-time"},"endTime":{"type":["string","null"],"format":"date-time"},"timezone":{"type":["string","null"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"conferenceType":{"type":["string","null"],"enum":["NONE","ZOOM","GOOGLE_MEET","CALENDLY","CUSTOM","MICROSOFT_TEAMS",null]},"conferenceUrl":{"type":["string","null"],"description":"The URL of the conference/meeting"},"observerRoomId":{"type":["string","null"]},"participants":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["PARTICIPANT"]},"participantId":{"type":"string"}},"required":["email","rsvpStatus","type","participantId"]}},"hosts":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["HOST"]},"userId":{"type":["string","null"]}},"required":["email","rsvpStatus","type","userId"]}},"guests":{"type":"array","items":{"type":"object","properties":{"email":{"type":["string","null"],"description":"The email of the attendee"},"rsvpStatus":{"type":"string","enum":["NOREPLY","MAYBE","YES","NO"],"description":"The status of the attendee"},"type":{"type":"string","enum":["GUEST"]},"userId":{"type":["string","null"]}},"required":["email","rsvpStatus","type","userId"]}}},"required":["interviewBookingId","studyId","state","role","waitingRoomStatus","startTime","endTime","timezone","title","description","conferenceType","conferenceUrl","observerRoomId","participants","hosts","guests"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/interviews/{interviewBookingId}/observer-room":{"get":{"tags":["Studies"],"summary":"Get the observer room for an interview","description":"Get the observer room for an interview","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/InterviewBookingId"}],"responses":{"200":{"description":"The observer room","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"observerRoomId":{"type":"string"},"interviewBookingId":{"type":"string"},"studyId":{"type":"string"},"title":{"type":["string","null"]},"note":{"type":["string","null"]},"guestUserIds":{"type":"array","items":{"type":"string"},"description":"The rally userIds associated with the observer room"},"externalGuests":{"type":"array","items":{"type":"string"},"description":"The external guests associated with the observer room"},"linkWithPassword":{"type":"string","description":"The full observer room link including the password"},"bots":{"type":"array","items":{"type":"object","properties":{"observerRoomBotId":{"type":"string"},"observerRoomId":{"type":"string"},"status":{"type":"string","enum":["SCHEDULED","IN_MEETING_WAITING","IN_MEETING_RECORDING","IN_MEETING_PAUSED","MEETING_ENDED","RECORDING_PERMISSION_DENIED","DONE","ERROR"]},"subscriptionStatus":{"type":"string","enum":["HEALTHY","RECORDING_PERMISSION_DENIED"]},"liveStreamStatus":{"type":"string","enum":["NOT_STARTED","IDLE","ACTIVE","ENDED"]},"source":{"type":"string","enum":["SCHEDULED","MANUALLY_SENT"]},"video":{"type":["object","null"],"properties":{"hasVideo":{"type":"boolean"},"downloadUrl":{"type":["string","null"]}},"required":["hasVideo","downloadUrl"],"description":"The video of the bot, null if no permission to download"},"transcript":{"type":["object","null"],"properties":{"hasTranscript":{"type":"boolean"},"transcriptUrl":{"type":["string","null"]},"shortSummary":{"type":["string","null"]},"longSummary":{"type":["string","null"]}},"required":["hasTranscript","transcriptUrl","shortSummary","longSummary"],"description":"The transcript of the bot, null if no permission to download"}},"required":["observerRoomBotId","observerRoomId","status","subscriptionStatus","liveStreamStatus","source","video","transcript"]},"description":"The bots associated with the observer room"}},"required":["observerRoomId","interviewBookingId","studyId","title","note","guestUserIds","externalGuests","linkWithPassword","bots"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/observer-rooms":{"get":{"tags":["Studies"],"summary":"Get the observer rooms for a study","description":"Get a paginated list of observer rooms for a study","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"schema":{"type":"string","description":"The cursor to start from"},"required":false,"description":"The cursor to start from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":25,"description":"The number of items to return","example":10},"required":false,"description":"The number of items to return","name":"size","in":"query"}],"responses":{"200":{"description":"The observer rooms","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"observerRoomId":{"type":"string"},"interviewBookingId":{"type":"string"},"studyId":{"type":"string"},"title":{"type":["string","null"]},"note":{"type":["string","null"]},"guestUserIds":{"type":"array","items":{"type":"string"},"description":"The rally userIds associated with the observer room"},"externalGuests":{"type":"array","items":{"type":"string"},"description":"The external guests associated with the observer room"},"linkWithPassword":{"type":"string","description":"The full observer room link including the password"},"bots":{"type":"array","items":{"type":"object","properties":{"observerRoomBotId":{"type":"string"},"observerRoomId":{"type":"string"},"status":{"type":"string","enum":["SCHEDULED","IN_MEETING_WAITING","IN_MEETING_RECORDING","IN_MEETING_PAUSED","MEETING_ENDED","RECORDING_PERMISSION_DENIED","DONE","ERROR"]},"subscriptionStatus":{"type":"string","enum":["HEALTHY","RECORDING_PERMISSION_DENIED"]},"liveStreamStatus":{"type":"string","enum":["NOT_STARTED","IDLE","ACTIVE","ENDED"]},"source":{"type":"string","enum":["SCHEDULED","MANUALLY_SENT"]},"video":{"type":["object","null"],"properties":{"hasVideo":{"type":"boolean"},"downloadUrl":{"type":["string","null"]}},"required":["hasVideo","downloadUrl"],"description":"The video of the bot, null if no permission to download"},"transcript":{"type":["object","null"],"properties":{"hasTranscript":{"type":"boolean"},"transcriptUrl":{"type":["string","null"]},"shortSummary":{"type":["string","null"]},"longSummary":{"type":["string","null"]}},"required":["hasTranscript","transcriptUrl","shortSummary","longSummary"]}},"required":["observerRoomBotId","observerRoomId","status","subscriptionStatus","liveStreamStatus","source","video","transcript"]},"description":"The bots associated with the observer room, without transcript summaries"}},"required":["observerRoomId","interviewBookingId","studyId","title","note","guestUserIds","externalGuests","linkWithPassword","bots"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/observer-rooms/{observerRoomId}/transcripts/{botId}":{"get":{"tags":["Studies"],"summary":"Get the transcript for an observer room bot","description":"Get the transcript for an observer room bot","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ObserverRoomId"},{"$ref":"#/components/parameters/ObserverRoomBotId"}],"responses":{"200":{"description":"The transcript","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"shortSummary":{"type":["string","null"]},"longSummary":{"type":["string","null"]},"transcript":{"type":"array","items":{"type":"object","properties":{"speaker":{"type":["string","null"]},"speaker_id":{"type":"string"},"language":{"type":"string"},"words":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start_timestamp":{"type":"number"},"end_timestamp":{"type":"number"},"language":{"type":"string"},"confidence":{"type":"number"}},"required":["text","start_timestamp","end_timestamp","language","confidence"]}}},"required":["speaker","speaker_id","language","words"]}}},"required":["shortSummary","longSummary","transcript"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/screener":{"get":{"tags":["Screener"],"summary":"Get a study's screener","description":"Fetch the full screener (top-level properties and all questions) for a study. Only available while the study is in draft status; any other status responds with 409. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"responses":{"200":{"description":"The screener","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerResponse"}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"put":{"tags":["Screener"],"summary":"Replace a study's screener","description":"Completely replace (upsert) the screener for a draft study. The entire screener configuration must be sent: question ids are regenerated on every call and omitted top-level properties reset to their defaults. Creates the screener (and enables the study's includeScreener flag) when the study has none. Only Rally screeners can be managed via the API. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerPutBody"}}}},"responses":{"200":{"description":"The replaced screener","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerResponse"}}}},"400":{"description":"Bad Request — JSON with field details for schema validation errors, plain text for domain rule violations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}},"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"patch":{"tags":["Screener"],"summary":"Update a screener's top-level properties","description":"Update the top-level properties of a draft study's screener. Only the provided fields change. Question updates must go through PUT /studies/{studyId}/screener. Only Rally screeners can be managed via the API. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerPatch"}}}},"responses":{"200":{"description":"The updated screener","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerResponse"}}}},"400":{"description":"Bad Request — JSON with field details for schema validation errors, plain text for domain rule violations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}},"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"delete":{"tags":["Screener"],"summary":"Delete a study's screener","description":"Delete the screener (and all of its questions) from a draft study and set the study's includeScreener flag to false. Only Rally screeners can be deleted via the API. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"responses":{"204":{"description":"The screener was deleted"},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/publish":{"post":{"tags":["Studies"],"summary":"Publish a draft study","description":"Publish a draft study and all of its associated data (screener, questions, options), applying its pending draft changes and moving it out of DRAFT status so it goes live. This is the same publish action available in the Rally app.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"responses":{"200":{"description":"The published study","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudyWithScreener"}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/screener/questions":{"post":{"tags":["Screener"],"summary":"Create a screener question","description":"Append a question to the end of a draft study's screener. Only Rally screeners can be managed via the API. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScreenerQuestionBody"}}}},"responses":{"201":{"description":"The created question","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerQuestionResponse"}}}},"400":{"description":"Bad Request — JSON with field details for schema validation errors, plain text for domain rule violations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}},"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/screener/questions/{questionId}":{"get":{"tags":["Screener"],"summary":"Get a screener question","description":"Fetch a single screener question from the published rows. Available for studies in any status. For matrix questions, pass the parent MATRIX question id. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ScreenerQuestionId"}],"responses":{"200":{"description":"The question","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerQuestionResponse"}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"put":{"tags":["Screener"],"summary":"Update a screener question","description":"Fully replace a single screener question. Options are regenerated; the question id is stable. Questions created from a template must pass their questionTemplateId. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ScreenerQuestionId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScreenerQuestionBody"}}}},"responses":{"200":{"description":"The updated question","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenerQuestionResponse"}}}},"400":{"description":"Bad Request — JSON with field details for schema validation errors, plain text for domain rule violations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}},"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}},"delete":{"tags":["Screener"],"summary":"Delete a screener question","description":"Delete a question from a draft study's screener. Deleting a matrix parent question cascades to its rows. Matrix child questions must be deleted through their parent. Not available for survey studies.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/StudyId"},{"$ref":"#/components/parameters/ScreenerQuestionId"}],"responses":{"204":{"description":"The question was deleted"},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"409":{"description":"Conflict","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Study is not in draft status"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/consent-submissions/export":{"post":{"tags":["Consent Submissions"],"summary":"Export consent submissions for a study","description":"Initiates an export of consent submissions as a ZIP file containing PDFs for a specific study.\n\nThe export runs asynchronously. Use the returned export ID to check the status and download the file when complete.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The study ID"},"required":true,"description":"The study ID","name":"studyId","in":"path"}],"responses":{"201":{"description":"Export job created successfully","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"exportId":{"type":"string","description":"The export ID to use for checking status"},"status":{"type":"string","enum":["NOT_STARTED","EXPORTING","COMPLETED","PARTIAL","ERROR"],"description":"The current status of the export. PARTIAL means the export finished but some consent submission PDFs could not be included in the ZIP file; see failedCount and failedConsentSubmissionIds."},"createdAt":{"type":"string","description":"When the export was created"}},"required":["exportId","status","createdAt"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/studies/{studyId}/consent-submissions/export/{exportId}":{"get":{"tags":["Consent Submissions"],"summary":"Get consent submission export status","description":"Returns the status of a consent submission export job.\n\nWhen the status is `COMPLETED`, the response includes a `downloadUrl` which is a pre-signed S3 URL that can be used to download the ZIP file directly via a GET request.\n\nWhen the status is `PARTIAL`, the export finished but some consent submission PDFs could not be included. The response still includes a `downloadUrl`, along with `failedCount`, `failedConsentSubmissionIds` and a `message`, and the ZIP file contains a `manifest.csv` listing each consent submission as included or missing. Requesting a new export may include the missing PDFs.\n\nThe URL expires after 5 minutes. Request a new export status to get a fresh URL if needed.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The study ID"},"required":true,"description":"The study ID","name":"studyId","in":"path"},{"schema":{"type":"string","description":"The export ID"},"required":true,"description":"The export ID","name":"exportId","in":"path"}],"responses":{"200":{"description":"Export status retrieved successfully","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"exportId":{"type":"string","description":"The export ID"},"status":{"type":"string","enum":["NOT_STARTED","EXPORTING","COMPLETED","PARTIAL","ERROR"],"description":"The current status of the export. PARTIAL means the export finished but some consent submission PDFs could not be included in the ZIP file; see failedCount and failedConsentSubmissionIds."},"processedCount":{"type":"number","description":"Number of consent submission PDFs added to the ZIP file so far"},"totalCount":{"type":"number","description":"Total number of consent submissions to export"},"failedCount":{"type":"number","description":"Number of consent submissions whose PDF could not be included in the ZIP file"},"failedConsentSubmissionIds":{"type":"array","items":{"type":"string"},"description":"IDs of the consent submissions whose PDF could not be included in the ZIP file. Populated once the export finishes."},"message":{"type":"string","description":"A human-readable explanation of the result. Present when status is PARTIAL."},"downloadUrl":{"type":"string","description":"Pre-signed S3 URL to download the ZIP file. Expires after 5 minutes. Only present when status is COMPLETED or PARTIAL. A PARTIAL export also contains a manifest.csv listing each consent submission as included or missing."},"createdAt":{"type":"string","description":"When the export was created"},"updatedAt":{"type":"string","description":"When the export was last updated"}},"required":["exportId","status","processedCount","totalCount","failedCount","failedConsentSubmissionIds","createdAt","updatedAt"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/{personId}/consent-submissions":{"get":{"tags":["Consent Submissions"],"summary":"List a person's consent submissions","description":"Returns a person's consent submissions, each with a pre-signed S3 URL to download the submission PDF.\n\nUse this to retrieve all of a person's consent forms. Unlike the export endpoint, this does not require a study or consent form to disambiguate when the person has multiple submissions.\n\nResults are cursor-paginated: pass the response's `pageInfo.endCursor` as the next request's `startCursor`. Download each page's URLs before fetching the next page, as they expire after 15 minutes.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The person ID"},"required":true,"description":"The person ID","name":"personId","in":"path"},{"schema":{"type":"string","description":"The cursor to start from"},"required":false,"description":"The cursor to start from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":100,"description":"The number of items to return","example":10},"required":false,"description":"The number of items to return","name":"size","in":"query"},{"schema":{"type":"string","description":"Only return consent submissions for this study."},"required":false,"description":"Only return consent submissions for this study.","name":"studyId","in":"query"}],"responses":{"200":{"description":"Consent submissions returned successfully","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConsentSubmissionsResponse"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/people/{personId}/consent-submissions/export":{"get":{"tags":["Consent Submissions"],"summary":"Export consent submission for a person","description":"Returns a pre-signed S3 URL to download the consent submission PDF for a specific person.\n\nThe URL expires after 15 minutes.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The person ID"},"required":true,"description":"The person ID","name":"personId","in":"path"},{"schema":{"type":"string","description":"Filter by study ID."},"required":false,"description":"Filter by study ID.","name":"studyId","in":"query"},{"schema":{"type":"string","description":"Required when the person has multiple consent submissions (multiple consent forms)."},"required":false,"description":"Required when the person has multiple consent submissions (multiple consent forms).","name":"consentFormId","in":"query"}],"responses":{"200":{"description":"Pre-signed download URL returned successfully","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonConsentSubmissionExportResponse"}}}},"400":{"description":"Bad Request","content":{"text/plain":{"schema":{"type":"string","example":"Bad Request"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"404":{"description":"Not Found","content":{"text/plain":{"schema":{"type":"string","example":"{Resource} not found"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/study-status-events/search":{"post":{"tags":["Study Status Events"],"summary":"Poll study status-change events in your workspace","description":"Returns a paginated, time-windowed list of study status-change events (draft, active, paused, closed transitions) across your workspace, most recent first. Poll this endpoint with a moving from/to window to ingest status changes without standing up webhooks.","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filter":{"$ref":"#/components/schemas/StudyStatusEventFilter"},"pageInfo":{"$ref":"#/components/schemas/PageInfoArgs"}},"required":["filter"]}}}},"responses":{"200":{"description":"The study status-change events","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/StudyStatusEvent"}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/me":{"get":{"tags":["Users"],"summary":"Get the current authenticated user","description":"Returns the authenticated user along with their team memberships","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The current user","content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","description":"The id of the user","example":"usr_123456789"},"workspaceId":{"type":"string","description":"The id of the user workspace","example":"wsp_123456789"},"workspaceSlug":{"type":"string","description":"The slug of the user workspace","example":"acme-research"},"fullname":{"type":["string","null"],"description":"The full name of the user","example":"John Doe"},"email":{"type":"string","description":"The email of the user","example":"john.doe@example.com"},"jobRole":{"type":["string","null"],"description":"The job role of the user","example":"Product Manager"},"profilePic":{"type":["string","null"],"description":"The profile picture URL of the user","example":"https://example.com/profile.jpg"},"status":{"type":"string","enum":["INVITED","ACTIVE","DEACTIVATED"],"description":"The status of the user","example":"ACTIVE"},"seat":{"type":["string","null"],"enum":["RALLY","RESEARCHER_FREE","RESEARCHER_PAID","LITE",null],"description":"The seat type of the user","example":"RESEARCHER_PAID"},"role":{"type":"string","enum":["DEVELOPER","OBSERVER","RESEARCHER","OPS_MANAGER","SUPER_ADMIN","CUSTOM","COLLABORATOR"],"description":"The role of the user","example":"OPS_MANAGER"},"teams":{"type":"array","items":{"type":"object","properties":{"teamId":{"type":"string","description":"The id of the team","example":"team_123456789"},"name":{"type":"string","description":"The name of the team","example":"Design Research"}},"required":["teamId","name"]},"description":"The teams the user is a member of"}},"required":["userId","workspaceId","workspaceSlug","fullname","email","jobRole","profilePic","status","seat","role","teams"]}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/teams":{"get":{"tags":["Teams"],"summary":"Paginated list of teams in your workspace","description":"Gets all teams in your workspace","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":25,"description":"The number of items to fetch","example":25},"required":false,"description":"The number of items to fetch","name":"size","in":"query"}],"responses":{"200":{"description":"The teams","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"teamId":{"type":"string","description":"The ID of the team"},"name":{"type":"string","description":"The name of the team"}},"required":["teamId","name"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}},"/users":{"get":{"tags":["Users"],"summary":"Gets a paginated list of all users","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The cursor to start fetching from"},"required":false,"description":"The cursor to start fetching from","name":"startCursor","in":"query"},{"schema":{"type":"number","exclusiveMinimum":0,"maximum":100,"default":10,"description":"The number of items to fetch","example":10},"required":false,"description":"The number of items to fetch","name":"size","in":"query"},{"schema":{"anyOf":[{"type":"array","items":{"type":"string"},"maxItems":20},{"type":"string"}],"description":"The emails to filter by. This is purely an OR filter"},"required":false,"description":"The emails to filter by. This is purely an OR filter","name":"email","in":"query"}],"responses":{"200":{"description":"A list of users","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","description":"The id of the user"},"fullname":{"type":["string","null"],"description":"The full name of the user"},"email":{"type":"string","description":"The email of the user"},"jobRole":{"type":["string","null"],"description":"The job role of the user"},"profilePic":{"type":["string","null"],"description":"The profile picture of the user"},"status":{"type":"string","enum":["INVITED","ACTIVE","DEACTIVATED"],"description":"The status of the user","example":"ACTIVE"},"connectedAccounts":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["CALENDLY","GOOGLE","OFFICE365","ZOOM"]},"status":{"type":"string","enum":["NOT_CONNECTED","CONNECTED","DISCONNECTED","ERROR"],"description":"The status of the integration","example":"CONNECTED"}},"required":["type","status"]},"description":"The connected accounts of the user"},"seat":{"type":["string","null"],"enum":["RALLY","RESEARCHER_FREE","RESEARCHER_PAID","LITE",null],"description":"The seat type of the user","example":"RESEARCHER_PAID"},"role":{"type":"string","enum":["DEVELOPER","OBSERVER","RESEARCHER","OPS_MANAGER","SUPER_ADMIN","CUSTOM","COLLABORATOR"],"description":"The role of the user","example":"OPS_MANAGER"},"createdAt":{"type":"string","format":"date-time","description":"The timestamp the user was created"},"lastActiveAt":{"type":["string","null"],"format":"date-time","description":"The most recent time the user made an authenticated request. Updated at most once per minute (subsequent activity within that window does not bump the timestamp). Includes UI, GraphQL, REST, and MCP traffic; excludes internal service tokens. Null if the user has not been active since this field was introduced."}},"required":["userId","fullname","email","jobRole","profilePic","status","connectedAccounts","seat","role","createdAt","lastActiveAt"]}},"total":{"type":"number","exclusiveMinimum":0,"description":"The total number of items in your workspaces based on your search parameters"},"pageInfo":{"$ref":"#/components/schemas/PageInfoResponse"}},"required":["results","total","pageInfo"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"401":{"description":"Unauthorized","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Unauthorized"}}}},"403":{"description":"Forbidden","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Forbidden"}}}},"429":{"description":"Too Many Requests","headers":{"Retry-After":{"$ref":"#/components/headers/Retry-After"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Too Many Requests"}}}},"500":{"description":"Internal Server Error","headers":{"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"}},"content":{"text/plain":{"schema":{"type":"string","example":"Internal Server Error"}}}}}}}},"webhooks":{"person.opted_out":{"post":{"operationId":"person.opted_out","description":"Person opted out of all communications.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"_eventType":{"type":"string","enum":["person.opted_out"]},"email":{"type":"string","description":"Email of the person who opted in/out."},"optedOut":{"type":"boolean","description":"Status of the opt-in/out."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp of the opt-in/out."}},"required":["_eventType","email","optedOut","updatedAt"]},"example":{"_eventType":"person.opted_out","email":"dev@rallyuxr.com","optedOut":true,"updatedAt":"2024-09-01T00:00:00.000Z"}}}},"responses":{"200":{"description":"Success"}}}},"person_import.api.finished":{"post":{"operationId":"person_import.api.finished","description":"Person import from API finished.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"_eventType":{"type":"string","enum":["person_import.api.finished"]},"importId":{"type":"string","description":"Unique identifier of the import."},"status":{"type":"string","enum":["NOT_STARTED","UPLOADING","ERROR","COMPLETED"],"description":"Status of the import."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp the import finished."},"failedRecords":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"personId":{"type":"string"}},"required":["personId"]},{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}]}},"partialReasons":{"type":"array","items":{"type":"string","enum":["RECORDS_FAILED","SELECT_OPTION_LIMIT_REACHED"]},"description":"Why a completed import is partial. RECORDS_FAILED means some records were not imported (see failedRecords). SELECT_OPTION_LIMIT_REACHED means people were imported but new select option values were left off because the property is at its option limit (see warnings). Empty when the import fully succeeded, is still running, or failed."},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/SyncWarning"},"description":"Detail for partial reasons other than failed records. Empty when there were none."}},"required":["_eventType","importId","status","updatedAt","failedRecords","partialReasons","warnings"]},"example":{"_eventType":"person_import.api.finished","importId":"test_cm1uwhduy001vle4gr4soyqkq","status":"COMPLETED","updatedAt":"2024-09-01T00:00:00Z","failedRecords":[{"personId":"test_cm1uwhduy001vle4gr4soyqkq"},{"email":"dev@rallyuxr.com"}],"partialReasons":["RECORDS_FAILED"],"warnings":[]}}}},"responses":{"200":{"description":"Success"}}}},"person_import.csv.finished":{"post":{"operationId":"person_import.csv.finished","description":"Person import from CSV finished.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"_eventType":{"type":"string","enum":["person_import.csv.finished"]},"importId":{"type":"string","description":"Unique identifier of the import."},"status":{"type":"string","enum":["NOT_STARTED","UPLOADING","ERROR","COMPLETED"],"description":"Status of the import."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp the import finished."},"failedRecords":{"type":["array","null"],"items":{"anyOf":[{"type":"object","properties":{"personId":{"type":"string"}},"required":["personId"]},{"type":"object","properties":{"email":{"type":"string"}},"required":["email"]}]}},"partialReasons":{"type":"array","items":{"type":"string","enum":["RECORDS_FAILED","SELECT_OPTION_LIMIT_REACHED"]},"description":"Why a completed import is partial. RECORDS_FAILED means some records were not imported (see failedRecords). SELECT_OPTION_LIMIT_REACHED means people were imported but new select option values were left off because the property is at its option limit (see warnings). Empty when the import fully succeeded, is still running, or failed."},"warnings":{"type":"array","items":{"$ref":"#/components/schemas/SyncWarning"},"description":"Detail for partial reasons other than failed records. Empty when there were none."}},"required":["_eventType","importId","status","updatedAt","failedRecords","partialReasons","warnings"]},"example":{"_eventType":"person_import.csv.finished","importId":"test_cm1uwhduy001vle4gr4soyqkq","status":"COMPLETED","updatedAt":"2024-09-01T00:00:00Z","failedRecords":[{"personId":"test_cm1uwhduy001vle4gr4soyqkq"},{"email":"dev@rallyuxr.com"}],"partialReasons":["RECORDS_FAILED","SELECT_OPTION_LIMIT_REACHED"],"warnings":[{"type":"SELECT_OPTION_LIMIT_REACHED","propertyId":"test_cm1uwhduy001vle4gr4soyqkq","droppedOptionNames":["Enterprise"]}]}}}},"responses":{"200":{"description":"Success"}}}},"participant.status_changed":{"post":{"operationId":"participant.status_changed","description":"Participant status changed. Ask Customer Support for Access.","x-svix-feature-flag":"PARTICIPANT_STATUS_WEBHOOK","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"_eventType":{"type":"string","enum":["participant.status_changed"]},"participantId":{"type":"string","description":"Unique identifier of the participant."},"personId":{"type":"string","description":"Unique identifier of the person."},"studyId":{"type":"string","description":"Unique identifier of the study."},"status":{"type":"string","enum":["NOT_STARTED","INVITE_SENT","NOT_ELIGIBLE","SCREENER_STARTED","SCREENER_COMPLETED","SCREENER_QUALIFIED","SCREENER_DISQUALIFIED","INTERVIEW_INVITE_SENT","INTERVIEW_SCHEDULED","INTERVIEW_COMPLETED","INTERVIEW_CANCELLED","INTERVIEW_NO_SHOWED","SURVEY_STARTED","SURVEY_COMPLETED","INCENTIVE_SENT","INCENTIVE_CLAIMED","INCENTIVE_SKIPPED","UNMODERATED_TEST_INVITE_SENT","UNMODERATED_TEST_STARTED","UNMODERATED_TEST_COMPLETED","COMPLETED_STUDY","CANCELLED","OPTED_OUT","EMAIL_SOFT_BOUNCED","EMAIL_HARD_BOUNCED"],"description":"New status of the participant."},"priorStatus":{"type":["string","null"],"enum":["NOT_STARTED","INVITE_SENT","NOT_ELIGIBLE","SCREENER_STARTED","SCREENER_COMPLETED","SCREENER_QUALIFIED","SCREENER_DISQUALIFIED","INTERVIEW_INVITE_SENT","INTERVIEW_SCHEDULED","INTERVIEW_COMPLETED","INTERVIEW_CANCELLED","INTERVIEW_NO_SHOWED","SURVEY_STARTED","SURVEY_COMPLETED","INCENTIVE_SENT","INCENTIVE_CLAIMED","INCENTIVE_SKIPPED","UNMODERATED_TEST_INVITE_SENT","UNMODERATED_TEST_STARTED","UNMODERATED_TEST_COMPLETED","COMPLETED_STUDY","CANCELLED","OPTED_OUT","EMAIL_SOFT_BOUNCED","EMAIL_HARD_BOUNCED",null],"description":"Prior status of the participant. Null if the participant was just created."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp the participant status changed."}},"required":["_eventType","participantId","personId","studyId","status","priorStatus","updatedAt"]},"example":{"_eventType":"participant.status_changed","participantId":"test_cm1uwhduy001vle4gr4soyqkq","personId":"test_cm1uwhduy001vle4gr4soyqkq","studyId":"test_cm1uwhduy001vle4gr4soyqkq","status":"INTERVIEW_SCHEDULED","priorStatus":"INTERVIEW_INVITE_SENT","updatedAt":"2024-09-01T00:00:00Z"}}}},"responses":{"200":{"description":"Success"}}}}}}