---
title: "POST /api/metric/dataset"
method: POST
path: "/api/metric/dataset"
tags: ["/api/metric"]
---

# POST /api/metric/dataset

`POST /api/metric/dataset`

Execute a metric or measure-based query and stream the results.

   Request body requires a `definition` object containing:
   - expression: A metric math expression tree (leaf reference or arithmetic)
     Examples: [:metric {:lib/uuid "a"} 42], [:- {} [:metric {:lib/uuid "a"} 1] [:metric {:lib/uuid "b"} 2]]
   - filters (optional): Per-instance filters keyed by :lib/uuid from the expression
   - projections (optional): Typed projections keyed by source type and ID

## Request body

- MetabaseMetricsApiDatasetRequest — Schema for POST /dataset request body.
  - `definition` MetabaseMetricsApiDefinition, required — Schema for the definition object within a dataset request. Uses expression-based contract for metric math support.
    - `expression` union, required — A recursive metric math expression tree. Can be a leaf (metric/measure ref) or an arithmetic expression [op opts expr expr ...] with at least 2 operands. Note: uses :fn validator for arithmetic to avoid Malli's recursive seqex limitation.
      - union — A leaf node in a metric math expression: either a metric or measure reference.
        - unknown[] — A metric reference in an expression: [:metric {:lib/uuid uuid} card-id].
          - unknown
        - unknown[] — A measure reference in an expression: [:measure {:lib/uuid uuid} measure-id].
          - unknown
      - number
    - `filters` MetabaseLibMetricSchemaInstanceFilter[] — A sequence of per-instance filters.
      - `filter` unknown, required
      - `lib/uuid` string, required
    - `projections` MetabaseLibMetricSchemaTypedProjection[] — A sequence of typed projections.
      - `id` integer, required
      - `lib/uuid` string, required
      - `projection` MetabaseLibMetricSchemaDimensionReference[], required
        - unknown[] — Dimension reference clause [:dimension opts uuid]. Handles normalization from JSON where the tag arrives as a string.
          - unknown
      - `type` 'metric' | 'measure', required

## Response `2XX`

Successful response

- MetabaseMetricsApiDatasetResponse — Schema for POST /dataset response.
  - `data` object, required
    - `cols` unknown[], required
      - unknown
    - `rows` unknown[], required
      - unknown
  - `row_count` integer, required — value must be an integer greater or equal to than zero.
  - `status` 'completed' | 'completed', required

## Other responses

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

---

[API](https://skmtc.net/metabase/apis/metabase-api.md) · [All operations](https://skmtc.net/metabase/apis/metabase-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metabase/metabase-api/versions/08b5a2bafb4f/schema)
