---
title: "Query Fanouts"
method: POST
path: "/v1/reports/query-fanouts"
tags: ["Reports"]
---

# Query Fanouts

`POST /v1/reports/query-fanouts`

## Request body

- QueryFanoutsQuery
  - `date_interval` 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'relative_week' — Date interval for the report. (only used with date dimension)
  - `dimensions` string[] — Dimensions to group the report by.
  - `metrics` string[], required
  - `order_by` object — Custom ordering. Keys must be a requested metric or the ``date`` dimension. Values are ``asc`` or ``desc``. Defaults to first metric descending.
  - `pagination` Pagination — Offset-based pagination parameters.
    - `limit` integer — Maximum number of results to return. Default is 10,000, maximum is 50,000.
    - `offset` integer — Offset for the results. Used for pagination.
  - `category_id` string, uuid, required
  - `start_date` string, date-time, required — Start date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp.
  - `end_date` string, date-time, required — End date. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, or ISO timestamp.
  - `filters` union[] — Filters to apply to the query fanout report.
    - union
      - RegionIdFilter — Filter by region UUID.
        - `field` union, required
          - 'region_id'
          - 'region'
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - RegionNameFilter — Filter by region name.
        - `field` 'region_name', required
        - `operator` 'is' | 'not_is' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'matches' | 'contains_case_insensitive' | 'not_contains_case_insensitive', required
        - `value` union, required
          - string
          - string[]
      - ModelIdFilter — Filter by AI model/platform UUID.
        - `field` union, required
          - 'model_id'
          - 'model'
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - TopicIdFilter — Filter by topic UUID.
        - `field` union, required
          - 'topic_id'
          - 'topic'
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - TagIdFilter — Filter by tag (prompt group) UUID.
        - `field` union, required
          - 'tag_id'
          - 'tag'
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - PromptIdFilter — Filter by prompt UUID.
        - `field` 'prompt_id', required
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - PersonaIdFilter — Filter by persona UUID.
        - `field` 'persona_id', required
        - `operator` 'is' | 'not_is' | 'in' | 'not_in', required
        - `value` union, required
          - string, uuid
          - string[]
      - AnalysisTypeFilter — Filter by analysis type (visibility, sentiment, or accuracy).
        - `field` 'analysis_type', required
        - `operator` 'is' | 'not_is' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'matches' | 'contains_case_insensitive' | 'not_contains_case_insensitive', required
        - `value` union, required
          - 'visibility' | 'sentiment' | 'sentiment_v2' | 'accuracy'
          - string[]
      - PromptTypeFilter — Filter by prompt type (visibility or sentiment). .. deprecated:: Use :class:`AnalysisTypeFilter` instead. ``prompt_type`` is normalised to ``analysis_type`` at parse time.
        - `field` 'prompt_type', required
        - `operator` 'is' | 'not_is' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'matches' | 'contains_case_insensitive' | 'not_contains_case_insensitive', required
        - `value` union, required
          - 'visibility' | 'sentiment'
          - string[]

## Response `200`

Successful Response

- Response — Base response model for reports.
  - `info` Info, required — Base model for report information.
    - `total_rows` integer, required
    - `query` object, nullable
  - `data` Result[], required
    - `metrics` union[], required
      - union
        - integer
        - number
    - `dimensions` union[], required
      - union
        - string
        - string, uuid

## Other responses

- `422` — Validation Error

## Changes

- **2026-06-25** `89ce8e6b341b` — 2 info
  - added the new `query_variations` enum value to the request property `metrics/items/`
  - added the new `query_variations` enum value to the request property `order_by/propertyNames/`
- **2026-06-17** `56d428ca479f` — 1 breaking, 1 info
  - removed `subschema #1, subschema #2` from the `filters/items/oneOf[subschema #8: AnalysisTypeFilter]/value` request property `anyOf` list
  - added `subschema #1, subschema #2` to the `filters/items/oneOf[subschema #8: AnalysisTypeFilter]/value` request property `anyOf` list
- **2026-05-01** `c55c2a1636c3` — 1 info
  - the endpoint scheme security `BearerAuth` was added to the API
- **2026-04-24** `4e2873e681d1` — 2 info
  - added `analysis_type` discriminator mapping keys to the `filters/items/` request property
  - added `#/components/schemas/AnalysisTypeFilter` to the `filters/items/` request property `oneOf` list
- **2026-04-18** `c7933052caf9` — 1 breaking, 1 info
  - the `data/items/dimensions/items/` response's property type/format changed from `string`/`` to ``/`` for status `200`
  - added `subschema #1, subschema #2` to the `data/items/dimensions/items/` response property `anyOf` list for the response status `200`

[Change history](https://skmtc.dev/cooper-square-technologies/apis/external-api/changes/v1/reports/query-fanouts/post.md)

---

[API](https://skmtc.dev/cooper-square-technologies/apis/external-api.md) · [All operations](https://skmtc.dev/cooper-square-technologies/apis/external-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cooper-square-technologies/external-api/revisions/ab03b3c80494/schema)
