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

# client.screening

> Qualifying multiple-choice questions that gate who can take part.

Screening runs before the interview. Each question lists the `acceptable_options` that qualify a participant. Participants who don't qualify see the disqualification message and can be redirected.

```python theme={null}
client.screening.create_question(
    study.id,
    question="Do you use the product at work?",
    options=["Yes", "No"],
    acceptable_options=["Yes"],
)
client.screening.set_settings(study.id, enabled=True, disqualification_message="Thanks anyway!")
```

## get()

```python theme={null}
client.screening.get(study_id) -> ScreeningOut
```

Screening settings plus the ordered question list.

**Returns** [`ScreeningOut`](/reference/models#screeningout).

## set\_settings()

```python theme={null}
client.screening.set_settings(
    study_id, *, enabled: bool, disqualification_message: str | None = None, redirect_url: str | None = None
) -> ScreeningSettingsOut
```

Enable or disable screening. Disabling keeps the questions and settings.

<ParamField body="enabled" type="bool" required>
  Whether screening runs before the interview.
</ParamField>

<ParamField body="disqualification_message" type="str">
  Shown to participants who don't qualify.
</ParamField>

<ParamField body="redirect_url" type="str">
  Where disqualified participants are sent. May contain `{{external_participant_id}}`.
</ParamField>

**Returns** [`ScreeningSettingsOut`](/reference/models#screeningsettingsout).

## create\_question()

```python theme={null}
client.screening.create_question(
    study_id, *, question: str, options: list[str], acceptable_options: list[str]
) -> ScreeningQuestionOut
```

Append a multiple-choice qualifying question.

<ParamField body="question" type="str" required>
  Question text.
</ParamField>

<ParamField body="options" type="list[str]" required>
  Answer options.
</ParamField>

<ParamField body="acceptable_options" type="list[str]" required>
  The subset of `options` that qualify the participant.
</ParamField>

**Returns** [`ScreeningQuestionOut`](/reference/models#screeningquestionout).

## update\_question()

```python theme={null}
client.screening.update_question(
    study_id, question_id, *, question=None, options=None, acceptable_options=None
) -> ScreeningQuestionOut
```

Update a screening question. Only the arguments you pass change.

**Returns** [`ScreeningQuestionOut`](/reference/models#screeningquestionout).

## delete\_question()

```python theme={null}
client.screening.delete_question(study_id, question_id) -> SuccessResponse
```

Delete a screening question and any recorded answers to it.

**Returns** [`SuccessResponse`](/reference/models#successresponse).

## reorder\_questions()

```python theme={null}
client.screening.reorder_questions(study_id, *, question_ids: Sequence[str | UUID]) -> ScreeningOut
```

Reorder screening questions. Pass every screening question ID, in the order you want.

**Returns** [`ScreeningOut`](/reference/models#screeningout).


## Related topics

- [client.interviews](/reference/interviews.md)
- [Models and enums](/reference/models.md)
- [client.studies](/reference/studies.md)
- [client.characteristics](/reference/characteristics.md)
- [client.recruitment](/reference/recruitment.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.