---
title: "POST /api/ee/metabot-tools/query-metric"
method: POST
path: "/api/ee/metabot-tools/query-metric"
tags: ["/api/ee/metabot-tools"]
---

# POST /api/ee/metabot-tools/query-metric

`POST /api/ee/metabot-tools/query-metric`

Construct a query from a metric.

## Request body

- object — Base schema for all tool requests. Contains the conversation ID and optional profile ID.
  - `arguments` MetabaseEnterpriseMetabotV3ToolsApiQueryMetricArguments, required
    - `filters` MetabaseEnterpriseMetabotV3ToolsApiFilter[], nullable
      - union
        - MetabaseEnterpriseMetabotV3ToolsApiSegmentFilter — Filter using a pre-defined segment.
          - `segment_id` integer, required
        - MetabaseEnterpriseMetabotV3ToolsApiExistenceFilter
          - `field_id` string, required
          - `operation` 'is-null' | 'is-not-null' | 'string-is-empty' | 'string-is-not-empty' | 'is-true' | 'is-false', required
        - MetabaseEnterpriseMetabotV3ToolsApiTemporalExtractionFilter
          - `field_id` string, required
          - `operation` 'year-equals' | 'year-not-equals' | 'quarter-equals' | 'quarter-not-equals' | 'month-equals' | 'month-not-equals' | 'day-of-week-equals' | 'day-of-week-not-equals' | 'hour-equals' | 'hour-not-equals' | 'minute-equals' | 'minute-not-equals' | 'second-equals' | 'second-not-equals', required
          - `value` integer, required
        - MetabaseEnterpriseMetabotV3ToolsApiDisjunctiveTemporalExtractionFilter
          - `field_id` string, required
          - `operation` 'year-equals' | 'year-not-equals' | 'quarter-equals' | 'quarter-not-equals' | 'month-equals' | 'month-not-equals' | 'day-of-week-equals' | 'day-of-week-not-equals' | 'hour-equals' | 'hour-not-equals' | 'minute-equals' | 'minute-not-equals' | 'second-equals' | 'second-not-equals', required
          - `values` integer[], required
        - MetabaseEnterpriseMetabotV3ToolsApiTemporalFilter
          - `bucket` 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'second-of-minute' | 'minute-of-hour' | 'hour-of-day' | 'day-of-week' | 'day-of-month' | 'day-of-year' | 'week-of-year' | 'month-of-year' | 'quarter-of-year' | 'year-of-era'
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'greater-than' | 'greater-than-or-equal' | 'less-than' | 'less-than-or-equal' | 'date-equals' | 'date-not-equals' | 'date-before' | 'date-on-or-before' | 'date-after' | 'date-on-or-after', required
          - `value` union, required
            - string
            - integer
        - MetabaseEnterpriseMetabotV3ToolsApiDisjunctiveTemporalFilter
          - `bucket` 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'second-of-minute' | 'minute-of-hour' | 'hour-of-day' | 'day-of-week' | 'day-of-month' | 'day-of-year' | 'week-of-year' | 'month-of-year' | 'quarter-of-year' | 'year-of-era'
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'greater-than' | 'greater-than-or-equal' | 'less-than' | 'less-than-or-equal', required
          - `values` union[], required
            - union
              - …
        - MetabaseEnterpriseMetabotV3ToolsApiStringFilter
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'string-equals' | 'string-not-equals' | 'string-contains' | 'string-not-contains' | 'string-starts-with' | 'string-ends-with', required
          - `value` string, required
        - MetabaseEnterpriseMetabotV3ToolsApiDisjunctiveStringDateFilter
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'string-contains' | 'string-not-contains' | 'string-starts-with' | 'string-ends-with', required
          - `values` string[], required
        - MetabaseEnterpriseMetabotV3ToolsApiNumericFilter
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'greater-than' | 'greater-than-or-equal' | 'less-than' | 'less-than-or-equal' | 'number-equals' | 'number-not-equals' | 'number-greater-than' | 'number-greater-than-or-equal' | 'number-less-than' | 'number-less-than-or-equal', required
          - `value` union, required
            - integer
            - number
        - MetabaseEnterpriseMetabotV3ToolsApiDisjunctiveNumericFilter
          - `field_id` string, required
          - `operation` 'equals' | 'not-equals' | 'number-equals' | 'number-not-equals', required
          - `values` union[], required
            - union
              - …
    - `group_by` MetabaseEnterpriseMetabotV3ToolsApiGroupBy[], nullable
      - `field_granularity` 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year' | 'day-of-week', nullable
      - `field_id` string, required
    - `metric_id` integer, required
  - `conversation_id` string, required — value must be a valid UUID.
  - `profile_id` string, nullable

## Response `2XX`

Base schema for all tool requests. Contains the conversation ID and optional profile ID.

- object — Base schema for all tool requests. Contains the conversation ID and optional profile ID.
  - `conversation_id` string, required — value must be a valid UUID.
  - `profile_id` string, nullable

## Other responses

- `4XX` — Client error response
- `5XX` — Server error response

## Changes

- **2026-01-20** `bd1deee7eae2` — 3 info
  - added the new optional request property `profile_id`
  - added `#/components/schemas/metabase-enterprise.metabot-v3.tools.api.segment-filter` to the `arguments/allOf[subschema #1]/filters/oneOf[subschema #1]/items/` request property `anyOf` list
  - added the optional property `profile_id` to the response with the `2XX` status

[Change history](https://skmtc.dev/metabase/apis/metabase-api/changes/api/ee/metabot-tools/query-metric/post.md)

---

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