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

# Response statuses

> Understand participant statuses and the actions available at each stage

## Statuses

**/v1/projects/\{projectId}/screener-responses/\{screenerResponseId}/**

Updating a participant status in a study happens through screener response endpoints.

| Call                                                                | Status change                     | Next actions                                                         |
| ------------------------------------------------------------------- | --------------------------------- | -------------------------------------------------------------------- |
| [Qualify](/screener-responses/qualify-participant)                  | N/A (`qualified` flag)            | Invite, Disqualify, Hide, Report                                     |
| [Disqualify](/screener-responses/qualify-participant)               | N/A (`qualified` flag)            | Qualify, Hide, Report                                                |
| [Hide](/screener-responses/hide-participant)                        | N/A (flag only)                   | N/A                                                                  |
| [Invite](/screener-responses/invite-participant)                    | Invited                           | Attended, Cancel invite, Reject, Report                              |
| [Cancel Invite](/screener-responses/cancel-invite)                  | Reverts to previous               | Invite, Disqualify, Hide, Report                                     |
| [Schedule](/screener-responses/schedule-participant)                | Scheduled                         | Attended, Cancel booking, Cancel & reinvite, Reject, No Show, Report |
| [Cancel booking](/screener-responses/cancel-booking)                | Cancelled                         | Re-invite, Report                                                    |
| [Cancel & reinvite](/screener-responses/cancel-booking-&-re-invite) | Invited                           | Attended, Cancel invite, Reject, Report                              |
| [Attended](/screener-responses/mark-as-attended)                    | Attended                          | No show, Report                                                      |
| [Rejected](/screener-responses/mark-as-rejected)                    | Rejected Quality                  | N/A                                                                  |
| [No show](/screener-responses/mark-as-no-show)                      | No show / Invalid Response        | N/A                                                                  |
| [Favorite](/screener-responses/mark-as-favorite)                    | N/A (flag only)                   | N/A                                                                  |
| [Report](/screener-responses/report-participant)                    | Cancelled (response is dismissed) | N/A                                                                  |

<AccordionGroup>
  <Accordion title="Qualify / Disqualify">
    Screener responses arrive with a `qualified` status of `true` or `false` based on predetermined criteria. If Respondent passes a participant with `qualified` = `false`, your researchers can manually qualify them before inviting. Likewise, disqualify (`qualifyStatus: false`) participants your own screening rules out **before inviting them**.

    Qualification is a flag, separate from the response lifecycle `status`. Disqualifying does not withdraw an invitation that has already been sent — the response stays `INVITED` and the participant can still take part. To withdraw an invitation, use [Cancel invite](/screener-responses/cancel-invite); after participation, use [Reject](/screener-responses/mark-as-rejected).
  </Accordion>

  <Accordion title="Hide">
    Hide a participant from the project view. This signals that there is nothing wrong with the participant — they are simply not right for this project.
  </Accordion>

  <Accordion title="Invite">
    Pass along booking or task data to the participant. For moderated studies, provide a `bookingLink`. For unmoderated, provide a `meetingLink`.
  </Accordion>

  <Accordion title="Cancel Invite">
    Revert an accidental invitation. The participant loses the ability to schedule a meeting or complete a linked study.
  </Accordion>

  <Accordion title="Schedule">
    **Moderated projects only.** After a participant books a time on your platform, send the `bookedDate` and `timezone` so their dashboard reflects when they should attend. You can also pass an updated `bookingLink` with a meeting link.
  </Accordion>

  <Accordion title="Cancel booking">
    **Moderated projects only.** If a researcher cannot make a booked meeting and does not intend to reschedule immediately, this removes the booked time from the participant's dashboard.
  </Accordion>

  <Accordion title="Cancel booking & reinvite">
    **Moderated projects only.** Cancel an existing booking and immediately re-invite the participant to book a new time.
  </Accordion>

  <Accordion title="Attended">
    Mark a participant as "attended" (moderated) or "complete" (unmoderated). **This kicks off incentive payout to the participant.**

    For unmoderated studies and surveys, you can track that a participant finished the task — without triggering payment — by redirecting them through the project's [`completionUrl`](/docs/Screener-responses/completion-url) at the end of the task. `task.status` and `screenerResponse.status` are independent flags: hitting the completion URL only sets `task.status = complete`, and calling this endpoint only moves `screenerResponse.status` to `ATTENDED`. Use the completion URL as a "ready for review" signal and call this endpoint once you've cleared the response for payout.
  </Accordion>

  <Accordion title="Rejected">
    Indicates the quality of the response did not meet expectations. Stops incentive payment, marks the participant as Rejected Quality, and sends them a notification email.
  </Accordion>

  <Accordion title="No show">
    **Moderated:** Available after the scheduled meeting time has passed. Marks the participant as excluded from the study. **Unmoderated/Survey:** Indicates the participant did not complete the task. Stops incentive payment and sends a notification email.
  </Accordion>

  <Accordion title="Favorite">
    Flag a participant as a favorite. Useful for identifying high-quality participants you may want to work with again.
  </Accordion>

  <Accordion title="Report">
    Report a suspicious or fraudulent participant. The response's `status` becomes `CANCELLED` and its `visibility.status` becomes `DISMISSED` — it is removed from the researcher UI and from default listings (`visibilityStatus` defaults to `VISIBLE`). Pass `visibilityStatus=DISMISSED` on [List screener responses](/screener-responses/list-screener-responses) if you need them back (that filter may include non-report dismissals), and prefer persisting the `screenerResponseId` on your side before reporting. Reported participants cannot apply to future studies from your organization, and the Respondent team investigates whether they should be removed from the platform.
  </Accordion>
</AccordionGroup>

## Skipped questions

Organizations that opt in to including skipped questions in screener responses receive an entry in `responses[]` for every screener question, with `skipped`, `skippedBy`, and `shown` flags marking questions the participant did not answer. See [Collecting responses](/screener-responses/collecting-responses#skipped-questions-in-responses) for the field reference and examples.

## Example status flows

<Tabs>
  <Tab title="Moderated">
    * Invite → Schedule → Attended / No show / Reject
    * Qualify → Invite → Schedule → Attended / No show / Reject
    * Invite → Schedule → Cancel booking & reinvite → Schedule → Attended / No show / Reject
  </Tab>

  <Tab title="Unmoderated">
    * Invite → Attended / No show / Reject
    * Invite → Cancel invite
    * Qualify → Invite → Attended / No show → Favorite
  </Tab>
</Tabs>
