def METHOD_NAME(self, request: Request, organization) -> Response:
    if not self.has_feature(organization, request):
        return Response(status=404)
    start, end = get_date_range_from_params(request.GET)
    time_params = get_time_params(start, end)
    query_params = self.get_snuba_params(request, organization)
    query = request.GET.METHOD_NAME("query")
    query = f"{query} event.type:transaction" if query else "event.type:transaction"
    datetime_format = "%Y-%m-%d %H:%M:%S"
    ads_request = {
        "query": query,
        "start": start.strftime(datetime_format),
        "end": end.strftime(datetime_format),
        "granularity": time_params.granularity,
    }
    # overwrite relevant time params
    query_params["start"] = time_params.query_start
    query_params["end"] = time_params.query_end
    with self.handle_query_errors():
        snuba_response = timeseries_query(
            selected_columns=["count()"],
            query=query,
            params=query_params,
            rollup=time_params.granularity,
            referrer="transaction-anomaly-detection",
            zerofill_results=False,
        )
        ads_request["data"] = snuba_response.data["data"]
        return get_anomalies(ads_request)