def METHOD_NAME(request: TableauRequest, study_object_id: str = None):
    form = ApiQueryForm(data=request.GET)
    if not form.is_valid():
        return HttpResponse(
            format_errors(form.errors.get_json_data()), status=400, content_type="application/json"
        )
    # The don't need to specify the study_id and participant_id fields, those are provided.
    query_fields = [f for f in form.cleaned_data["fields"] if f in SERIALIZABLE_FIELD_NAMES]
    paginator = tableau_query_database(
        study_object_id=study_object_id,  # the object id is validated in the login logic
        query_fields=query_fields,
        **form.cleaned_data,  # already cleaned and validated
    )
    return StreamingHttpResponse(
        paginator.stream_orjson_paginate(), content_type="application/json"
    )