# Rally Developer Docs ## Docs - [Introduction](https://docs.rallyuxr.com/introduction.md): Overview of Rally's Developer API - [Definitions](https://docs.rallyuxr.com/definitions.md): Key definitions of the different objects within Rally - [Relationships](https://docs.rallyuxr.com/relationships.md): How Rally's objects relate to each other - [Import activities](https://docs.rallyuxr.com/api-reference/backfills/import-activities.md): Imports activities into your workspace. If you'd like access to this route, please reach out to your Customer Success rep. - [Returns a person in your workspace](https://docs.rallyuxr.com/api-reference/person/returns-a-person-in-your-workspace.md): Returns a person by email if they exist. Deprecated, use `GET /people/{personId}/opted-out` instead to get their status - [Updates a person's opted out status](https://docs.rallyuxr.com/api-reference/person/updates-a-persons-opted-out-status.md): This will in turn update their contact status. Deprecated, use `PUT /people/{personId}/opted-out` instead - [Deletes people by email](https://docs.rallyuxr.com/api-reference/person/deletes-people-by-email.md): Deletes all data for a set of persons by email within 90 days. Deprecated, use `POST /people/delete` or `DELETE /people/{personId}` instead - [Search for emails](https://docs.rallyuxr.com/api-reference/messages/search-for-emails.md): 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 c… - [Search submissions for a consent form](https://docs.rallyuxr.com/api-reference/forms/search-submissions-for-a-consent-form.md): Search submissions for a specific consent form. Returns submission data including person ID, submission source, and submission date. - [Search submissions for a signup form](https://docs.rallyuxr.com/api-reference/forms/search-submissions-for-a-signup-form.md): Search submissions for a specific signup form. Returns submission data including person ID, approval status, and submission date. - [Gets an import by id](https://docs.rallyuxr.com/api-reference/imports/gets-an-import-by-id.md) - [Get paginated list of incentives](https://docs.rallyuxr.com/api-reference/incentives/get-paginated-list-of-incentives.md): Gets all incentives in your workspace - [List incentive IDs](https://docs.rallyuxr.com/api-reference/incentives/list-incentive-ids.md): Returns a paginated list of incentive IDs in your workspace, optionally filtered by study. Use the IDs with the resend and cancel endpoints. - [Send an incentive to study participants](https://docs.rallyuxr.com/api-reference/incentives/send-an-incentive-to-study-participants.md): 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. - [Resend an incentive](https://docs.rallyuxr.com/api-reference/incentives/resend-an-incentive.md): Resends the incentive email for an already-sent incentive. Only eligible for provider-backed incentives that have not been canceled or expired. - [Cancel an incentive](https://docs.rallyuxr.com/api-reference/incentives/cancel-an-incentive.md): Cancels an already-sent incentive. Provider-backed incentives are voided; custom incentives are marked canceled. - [Log a custom incentive for study participants](https://docs.rallyuxr.com/api-reference/incentives/log-a-custom-incentive-for-study-participants.md): 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. - [Get paginated list of custom incentives](https://docs.rallyuxr.com/api-reference/incentives/get-paginated-list-of-custom-incentives.md): Gets all custom incentives in your workspace - [Get a custom incentive by id](https://docs.rallyuxr.com/api-reference/incentives/get-a-custom-incentive-by-id.md): Gets a custom incentive by id - [Get an incentive by id](https://docs.rallyuxr.com/api-reference/incentives/get-an-incentive-by-id.md): Gets an incentive by id - [Get a paginated list of participant status-change events.](https://docs.rallyuxr.com/api-reference/participant-status-events/get-a-paginated-list-of-participant-status-change-events.md): 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. - [AI search for people](https://docs.rallyuxr.com/api-reference/ai/ai-search-for-people.md): Search for people using a natural language prompt. Returns results and optional filter suggestions. - [Search for people](https://docs.rallyuxr.com/api-reference/people/search-for-people.md): 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 - [Import people](https://docs.rallyuxr.com/api-reference/people/import-people.md): Internal 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. If a property with that name already exists then it will be used with *no* modification, if it does not exist then then pro… - [Delete people](https://docs.rallyuxr.com/api-reference/people/delete-people.md): Delete people by id or email. - [Delete a person](https://docs.rallyuxr.com/api-reference/people/delete-a-person.md): Delete a single person by only id - [Get a person's opted out status by ID or email](https://docs.rallyuxr.com/api-reference/people/get-a-persons-opted-out-status-by-id-or-email.md): Pass either the person ID or email to get the opted out status - [Update a person's opted out status](https://docs.rallyuxr.com/api-reference/people/update-a-persons-opted-out-status.md): Pass either the person ID or email to update the opted out status - [Paginated list of population in your workspace](https://docs.rallyuxr.com/api-reference/populations/paginated-list-of-population-in-your-workspace.md): Gets all populations in your workspace - [Search properties by name or value](https://docs.rallyuxr.com/api-reference/person-properties/search-properties-by-name-or-value.md) - [Create multiple new person properties](https://docs.rallyuxr.com/api-reference/person-properties/create-multiple-new-person-properties.md) - [Get all person properties in your workspace](https://docs.rallyuxr.com/api-reference/person-properties/get-all-person-properties-in-your-workspace.md) - [Delete person properties in bulk](https://docs.rallyuxr.com/api-reference/person-properties/delete-person-properties-in-bulk.md) - [Get a person property by ID](https://docs.rallyuxr.com/api-reference/person-properties/get-a-person-property-by-id.md) - [Update a person property by ID](https://docs.rallyuxr.com/api-reference/person-properties/update-a-person-property-by-id.md) - [Deletes a person property by ID](https://docs.rallyuxr.com/api-reference/person-properties/deletes-a-person-property-by-id.md) - [Get all person property groups in your workspace](https://docs.rallyuxr.com/api-reference/person-properties/get-all-person-property-groups-in-your-workspace.md): Returns all property groups in your workspace, optionally filtered by population. - [Get a person property group by ID](https://docs.rallyuxr.com/api-reference/person-properties/get-a-person-property-group-by-id.md): Returns a single property group in your workspace, including the IDs of its properties. - [Get the properties in a person property group](https://docs.rallyuxr.com/api-reference/person-properties/get-the-properties-in-a-person-property-group.md): Returns a paginated list of the person properties belonging to the given property group. - [Paginated list of segments in your workspace](https://docs.rallyuxr.com/api-reference/segments/paginated-list-of-segments-in-your-workspace.md): Gets all segments in your workspace. Filtering currently not supported - [Create a new study](https://docs.rallyuxr.com/api-reference/studies/create-a-new-study.md): Create a new study in your workspace. This can only be a draft study, certain features not supported and require updating in the UI - [Get paginated list of studies in your workspace.](https://docs.rallyuxr.com/api-reference/studies/get-paginated-list-of-studies-in-your-workspace.md): Get a paginated list of studies in your workspace - [Get a study by ID](https://docs.rallyuxr.com/api-reference/studies/get-a-study-by-id.md) - [Update a study](https://docs.rallyuxr.com/api-reference/studies/update-a-study.md): 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 - [Update a study](https://docs.rallyuxr.com/api-reference/studies/update-a-study-1.md): Update a study in your workspace. Only the fields provided will be updated. Certain features not supported and require updating in the UI - [Update a study status](https://docs.rallyuxr.com/api-reference/studies/update-a-study-status.md): Update the status of a study in your workspace. This is the only way to programatically change a study's status - [Search screener/survey responses for a study](https://docs.rallyuxr.com/api-reference/studies/search-screenersurvey-responses-for-a-study.md): 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. - [Get a paginated list of study templates](https://docs.rallyuxr.com/api-reference/studies/get-a-paginated-list-of-study-templates.md): Get a paginated list of study templates - [Get a paginated list of interviews in a study](https://docs.rallyuxr.com/api-reference/studies/get-a-paginated-list-of-interviews-in-a-study.md): Get a paginated list of interviews in a study - [Get an interview by ID](https://docs.rallyuxr.com/api-reference/studies/get-an-interview-by-id.md): Get an interview by ID - [Get the observer room for an interview](https://docs.rallyuxr.com/api-reference/studies/get-the-observer-room-for-an-interview.md): Get the observer room for an interview - [Get the observer rooms for a study](https://docs.rallyuxr.com/api-reference/studies/get-the-observer-rooms-for-a-study.md): Get a paginated list of observer rooms for a study - [Get the transcript for an observer room bot](https://docs.rallyuxr.com/api-reference/studies/get-the-transcript-for-an-observer-room-bot.md): Get the transcript for an observer room bot - [Publish a draft study](https://docs.rallyuxr.com/api-reference/studies/publish-a-draft-study.md): 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. - [Paginated list of participants in a study](https://docs.rallyuxr.com/api-reference/participants/paginated-list-of-participants-in-a-study.md): Get a paginated list of participants in a study - [Count participants in a study](https://docs.rallyuxr.com/api-reference/participants/count-participants-in-a-study.md): Get the total number of participants in a study matching the filter criteria, without returning individual participant records. - [Import participants to a study](https://docs.rallyuxr.com/api-reference/participants/import-participants-to-a-study.md): 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. Internal properties are on the person object and custom properties can be specified either with the id… - [Get a participant by ID](https://docs.rallyuxr.com/api-reference/participants/get-a-participant-by-id.md): Get a participant by ID - [Append a note to a participant](https://docs.rallyuxr.com/api-reference/participants/append-a-note-to-a-participant.md): Append a note to a participant. If no note exists, a new one will be created with the provided note - [Get a study's screener](https://docs.rallyuxr.com/api-reference/screener/get-a-studys-screener.md): 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. - [Replace a study's screener](https://docs.rallyuxr.com/api-reference/screener/replace-a-studys-screener.md): 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… - [Delete a study's screener](https://docs.rallyuxr.com/api-reference/screener/delete-a-studys-screener.md): 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. - [Update a screener's top-level properties](https://docs.rallyuxr.com/api-reference/screener/update-a-screeners-top-level-properties.md): 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. - [Create a screener question](https://docs.rallyuxr.com/api-reference/screener/create-a-screener-question.md): 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. - [Get a screener question](https://docs.rallyuxr.com/api-reference/screener/get-a-screener-question.md): 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. - [Update a screener question](https://docs.rallyuxr.com/api-reference/screener/update-a-screener-question.md): 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. - [Delete a screener question](https://docs.rallyuxr.com/api-reference/screener/delete-a-screener-question.md): 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. - [Export consent submissions for a study](https://docs.rallyuxr.com/api-reference/consent-submissions/export-consent-submissions-for-a-study.md): Initiates an export of consent submissions as a ZIP file containing PDFs for a specific study. - [Get consent submission export status](https://docs.rallyuxr.com/api-reference/consent-submissions/get-consent-submission-export-status.md): Returns the status of a consent submission export job. - [Export consent submission for a person](https://docs.rallyuxr.com/api-reference/consent-submissions/export-consent-submission-for-a-person.md): Returns a pre-signed S3 URL to download the consent submission PDF for a specific person. - [Poll study status-change events in your workspace](https://docs.rallyuxr.com/api-reference/study-status-events/poll-study-status-change-events-in-your-workspace.md): 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. - [Get the current authenticated user](https://docs.rallyuxr.com/api-reference/users/get-the-current-authenticated-user.md): Returns the authenticated user along with their team memberships - [Gets a paginated list of all users](https://docs.rallyuxr.com/api-reference/users/gets-a-paginated-list-of-all-users.md) - [Paginated list of teams in your workspace](https://docs.rallyuxr.com/api-reference/teams/paginated-list-of-teams-in-your-workspace.md): Gets all teams in your workspace - [Personopted out](https://docs.rallyuxr.com/api-reference/personopted_out.md): Person opted out of all communications. - [Person importapifinished](https://docs.rallyuxr.com/api-reference/person_importapifinished.md): Person import from API finished. - [Person importcsvfinished](https://docs.rallyuxr.com/api-reference/person_importcsvfinished.md): Person import from CSV finished. - [Participantstatus changed](https://docs.rallyuxr.com/api-reference/participantstatus_changed.md): Participant status changed. Ask Customer Support for Access. - [Person Opted Out](https://docs.rallyuxr.com/webhooks/person-opt-out.md) - [Person Import API Finished](https://docs.rallyuxr.com/webhooks/person-import-api-finished.md) - [Person Import CSV Finished](https://docs.rallyuxr.com/webhooks/person-import-csv-finished.md) - [Participant Status Changed](https://docs.rallyuxr.com/webhooks/participant-status-changed.md) ## OpenAPI Specs - [openapi](https://docs.rallyuxr.com/api-reference/openapi.json) - [openapi-from-anchor-url-0](https://docs.rallyuxr.com/openapi-from-anchor-url-0) ## Optional - [Help Center](https://help.rallyuxr.com/en/) - [Blog](https://www.rallyuxr.com/blog)