---
title: "Get Experiment Query Themes"
method: GET
path: "/api/v1/geo/experiments/{experiment_id}/query-themes"
tags: ["geo-monitoring", "geo-dashboard"]
---

# Get Experiment Query Themes

`GET /api/v1/geo/experiments/{experiment_id}/query-themes`

## Request

- Base URL: `https://api.getanana.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getanana.com/api/v1/geo/experiments/{experiment_id}/query-themes`
- Auth: none declared

Recurring provider-reported search-query themes for one experiment.

Each theme carries its per-cohort recurrence (``n/N`` over distinct eligible
executions, with the provisional 60% threshold and an evidence label) and the
original query strings per execution, so a percentage is never shown without the
observations behind it. Providers that expose no query strings are listed as
unobservable and excluded from every denominator.

## Path parameters

- `experiment_id` string, uuid, required

## Query parameters

- `period` '7d' | '14d' | '30d' | '90d'

## Response `200`

Successful Response

- QueryThemesResponse
  - `period` '7d' | '14d' | '30d' | '90d', required
  - `manual_snapshot` boolean
  - `runs` RunRef[]
    - `run_id` string, uuid, required
    - `completed_at` string, date-time, nullable
  - `threshold` number, required
  - `platforms` QueryPlatformCoverage[]
    - `platform_id` string, uuid, required
    - `platform_name` string, required
    - `state` 'observed' | 'unobservable', required
    - `eligible_executions` integer
    - `null_capture_executions` integer
  - `eligible_cohorts` integer
  - `themes` QueryTheme[]
    - `key` string, required
    - `example_query` string, required
    - `topics` string[]
    - `hotels` QueryThemeHotel[]
      - `key` string, required
      - `name` string, required
      - `role` 'subject' | 'competitor' | 'catalog', required
      - `competitor_id` string, uuid, nullable
      - `tier` string, nullable
    - `unresolved_competitor_ids` string[]
    - `destination` boolean
    - `residual` string[]
    - `qualifying_cohorts` integer, required
    - `eligible_cohorts` integer, required
    - `max_recurrence` number, required
    - `cohorts` QueryThemeCohort[]
      - `prompt_id` string, uuid, required
      - `prompt_text` string, required
      - `prompt_category` string, required
      - `platform_id` string, uuid, required
      - `platform_name` string, required
      - `resolved_model` string, nullable
      - `n` integer, required
      - `total` integer, required
      - `recurrence` number, required
      - `qualifies` boolean, required
      - `evidence` 'seen_once' | 'seen_twice' | 'recurring', required
      - `executions` QueryThemeExecution[]
        - `result_id` string, uuid, required
        - `scan_id` string, uuid, nullable
        - `run_index` integer, required
        - `queries` string[], required

## Other responses

- `404`: Experiment not found
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-18** `512200d910e2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/geo/experiments/:experiment_id/query-themes/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4d9d38769a75?raw)
