---
title: "Get Search Analytics"
method: POST
path: "/api/analytics/search"
tags: ["Analytics"]
---

# Get Search Analytics

`POST /api/analytics/search`

This route allows you to view the search analytics for a dataset.

## Headers

- `TR-Dataset` string, uuid, required

## Request body

- union
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'latency_graph', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'search_usage_graph', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `type` 'search_metrics', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `page` integer, nullable
    - `type` 'head_queries', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `page` integer, nullable
    - `threshold` number, float, nullable
    - `type` 'low_confidence_queries', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `page` integer, nullable
    - `type` 'no_result_queries', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `has_clicks` boolean, nullable
    - `page` integer, nullable
    - `sort_by` 'created_at' | 'latency' | 'top_score'
    - `sort_order` 'desc' | 'asc'
    - `type` 'search_queries', required
  - object
    - `count_collapsed_queries` boolean, nullable
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `type` 'count_queries', required
  - object
    - `request_id` string, uuid, required
    - `type` 'query_details', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `type` 'popular_filters', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'ctr_metrics_over_time', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'search_conversion_rate', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'searches_per_user', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'search_average_rating', required
  - object
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `type` 'event_funnel', required
  - object
    - `direct` boolean, nullable
    - `filter` SearchAnalyticsFilter
      - `component_name` string, nullable
      - `date_range` DateRange — DateRange is a JSON object which can be used to filter chunks by a range of dates. This leverages the time_stamp field on chunks in your dataset. You can specify this if you want values in a certain range. You must provide ISO 8601 combined date and time without timezone.
        - `gt` string, nullable
        - `gte` string, nullable
        - `lt` string, nullable
        - `lte` string, nullable
      - `query` string, nullable
      - `query_rating` QueryRatingRange
        - `gt` integer, nullable
        - `gte` integer, nullable
        - `lt` integer, nullable
        - `lte` integer, nullable
      - `search_method` 'fulltext' | 'semantic' | 'hybrid' | 'bm25'
      - `search_type` 'search' | 'autocomplete' | 'search_over_groups' | 'search_within_groups'
      - `top_score` FloatRange
        - `gt` number, double, nullable
        - `gte` number, double, nullable
        - `lt` number, double, nullable
        - `lte` number, double, nullable
    - `granularity` 'minute' | 'second' | 'hour' | 'day' | 'month'
    - `type` 'search_revenue', required

## Response `200`

The search analytics for the dataset

- union
  - LatencyGraphResponse
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required
  - SearchUsageGraphResponse
    - `points` IntegerTimePoint[], required
      - `point` integer, required
      - `time_stamp` string, required
    - `total_searches` integer, required
  - DatasetAnalytics
    - `avg_latency` number, double, required — Average latency of search queries
    - `p50` number, double, required — 50th percentile latency of search queries
    - `p95` number, double, required — 95th percentile latency of search queries
    - `p99` number, double, required — 99th percentile latency of search queries
    - `total_negative_ratings` number, double, required — Total number of searches with a negative rating
    - `total_positive_ratings` number, double, required — Total number of searches with a positive rating
    - `total_queries` integer, required — Total number of search queries
  - HeadQueryResponse
    - `queries` HeadQueries[], required
      - `count` integer, required
      - `query` string, required
  - SearchQueryResponse
    - `queries` SearchQueryEvent[], required
      - `created_at` string, required
      - `dataset_id` string, uuid, required
      - `id` string, uuid, required
      - `latency` number, float, required
      - `metadata` unknown
      - `query` string, required
      - `query_rating` SearchQueryRating
        - `metadata` unknown
        - `note` string, nullable
        - `rating` integer, required
      - `request_params` unknown, required
      - `results` unknown[], required
        - unknown
      - `search_type` 'search' | 'search_over_groups' | 'autocomplete' | 'rag', required
      - `top_score` number, float, required
      - `user_id` string, required
  - SearchQueryResponse
    - `queries` SearchQueryEvent[], required
      - `created_at` string, required
      - `dataset_id` string, uuid, required
      - `id` string, uuid, required
      - `latency` number, float, required
      - `metadata` unknown
      - `query` string, required
      - `query_rating` SearchQueryRating
        - `metadata` unknown
        - `note` string, nullable
        - `rating` integer, required
      - `request_params` unknown, required
      - `results` unknown[], required
        - unknown
      - `search_type` 'search' | 'search_over_groups' | 'autocomplete' | 'rag', required
      - `top_score` number, float, required
      - `user_id` string, required
  - SearchQueryResponse
    - `queries` SearchQueryEvent[], required
      - `created_at` string, required
      - `dataset_id` string, uuid, required
      - `id` string, uuid, required
      - `latency` number, float, required
      - `metadata` unknown
      - `query` string, required
      - `query_rating` SearchQueryRating
        - `metadata` unknown
        - `note` string, nullable
        - `rating` integer, required
      - `request_params` unknown, required
      - `results` unknown[], required
        - unknown
      - `search_type` 'search' | 'search_over_groups' | 'autocomplete' | 'rag', required
      - `top_score` number, float, required
      - `user_id` string, required
  - QueryCountResponse
    - `total_queries` SearchTypeCount[], required
      - `search_count` integer, required
      - `search_method` string, required
      - `search_type` string, required
  - SearchQueryEvent
    - `created_at` string, required
    - `dataset_id` string, uuid, required
    - `id` string, uuid, required
    - `latency` number, float, required
    - `metadata` unknown
    - `query` string, required
    - `query_rating` SearchQueryRating
      - `metadata` unknown
      - `note` string, nullable
      - `rating` integer, required
    - `request_params` unknown, required
    - `results` unknown[], required
      - unknown
    - `search_type` 'search' | 'search_over_groups' | 'autocomplete' | 'rag', required
    - `top_score` number, float, required
    - `user_id` string, required
  - PopularFiltersResponse
    - `popular_filters` PopularFilters[], required
      - `clause` string, required
      - `common_values` object, required
      - `count` integer, required
      - `field` string, required
      - `filter_type` string, required
  - CTRMetricsOverTimeResponse
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required
    - `total_ctr` number, double, required
  - SearchConversionRateResponse
    - `conversion_rate` number, double, required
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required
  - SearchesPerUserResponse
    - `avg_searches_per_user` number, double, required
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required
  - SearchAverageRatingResponse
    - `avg_search_rating` number, double, required
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required
  - EventNameAndCountsResponse
    - `event_names` EventNameAndCounts[], required
      - `event_count` integer, required
      - `event_name` string, required
  - SearchRevenueResponse
    - `avg_revenue` number, double, required
    - `points` FloatTimePoint[], required
      - `point` number, double, required
      - `time_stamp` string, required

## Other responses

- `400` — Service error relating to getting search analytics

---

[API](https://skmtc.net/devflowinc/apis/trieve-api.md) · [All operations](https://skmtc.net/devflowinc/apis/trieve-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/devflowinc/trieve-api/revisions/84583e7c9fc1/schema)
