---
title: "POST /api/ee/transform-test/{id}/run"
method: POST
path: "/api/ee/transform-test/{id}/run"
tags: ["/api/ee/transform-test"]
---

# POST /api/ee/transform-test/{id}/run

`POST /api/ee/transform-test/{id}/run`

## Request

- Base URL: `` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/ee/transform-test/{id}/run`
- Auth: API key in header `X-API-Key`

Run a transform test, which reading it is enough to do.

  A 200 means the run happened: `:status` is then `passed` or `failed`, and every expectation
  reports what it found — including one that could not be evaluated, which comes back as that
  expectation's own `:error` rather than discarding the answers of the others.

  Any other status means the run was refused and nothing meaningful ran; the body then carries the `:error-code`
  naming which refusal it was, as [[refusing]] describes.

## Path parameters

- `id` integer, required

## Response `2XX`

Successful response

- MetabaseEnterpriseTransformTestingSchemaRunResult: The outcome of a transform test run. `:tables` maps each temp table the run created to the table it stood in for.
  - `expectations` MetabaseEnterpriseTransformTestingSchemaExpectationResult[], required
    - union: What one expectation found. Each type owns the schema of its own result, registered under the key named here.
      - union: What an `equals` expectation found. Unless `:status` is `error`, every key is present on a pass as well as a failure: `:extra-rows`, `:missing-rows` and `:cell-mismatches` come back empty rather than missing. `:row-counts` sets the output's row count against the number of rows the expectation declared. `:cell-mismatches` is filled only when exactly one row is missing and exactly one is extra. `:extra-rows` and `:missing-rows` are capped; `:truncated` is how many rows that cap dropped.
        - object: What every expectation result carries: which expectation this is, and how it came out. A `:status` of `error` means this one expectation could not be evaluated while the rest of the run still reported; `:error` then says why, and nothing else is reported for it.
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[]
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `name` string, required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `type` 'equals', required
        - object: The comparison's findings, reported in full on a pass as well as a failure.
          - `cell-mismatches` MetabaseEnterpriseTransformTestingExpectationsEqualsCellMismatch[], required
            - `actual` union, required
              - …
            - `column` string, required
            - `expected` union, required
              - …
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[], required
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `extra-rows` MetabaseEnterpriseTransformTestingSchemaRow[], required
          - `missing-rows` MetabaseEnterpriseTransformTestingSchemaRow[], required
          - `name` string, required
          - `row-counts` object, required
            - `actual` integer, required
            - `expected` integer, required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `truncated` integer, required
          - `type` 'equals', required
        - object: The comparison's findings, reported in full on a pass as well as a failure.
          - `cell-mismatches` MetabaseEnterpriseTransformTestingExpectationsEqualsCellMismatch[], required
            - `actual` union, required
              - …
            - `column` string, required
            - `expected` union, required
              - …
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[], required
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `extra-rows` MetabaseEnterpriseTransformTestingSchemaRow[], required
          - `missing-rows` MetabaseEnterpriseTransformTestingSchemaRow[], required
          - `name` string, required
          - `row-counts` object, required
            - `actual` integer, required
            - `expected` integer, required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `truncated` integer, required
          - `type` 'equals', required
      - union: What an `empty` expectation found. A pass carries nothing beyond the shared keys. A failure adds the rows the query returned as `:sample`, with `:columns` describing them; the sample is capped, and `:truncated` is how many rows that cap dropped.
        - object: What every expectation result carries: which expectation this is, and how it came out. A `:status` of `error` means this one expectation could not be evaluated while the rest of the run still reported; `:error` then says why, and nothing else is reported for it.
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[]
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `name` string, required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `type` 'empty', required
        - object: What every expectation result carries: which expectation this is, and how it came out. A `:status` of `error` means this one expectation could not be evaluated while the rest of the run still reported; `:error` then says why, and nothing else is reported for it.
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[]
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `name` string, required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `type` 'empty', required
        - object: The rows the query returned, and the columns describing them.
          - `columns` MetabaseEnterpriseTransformTestingSchemaResultColumn[], required
            - `database_type` string, required: Schema for a string that cannot be blank.
            - `name` string, required: Schema for a string that cannot be blank.
          - `error` object
            - `message` string, required
            - `type` string, required
          - `name` string, required
          - `sample` MetabaseEnterpriseTransformTestingSchemaRow[], required
          - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
          - `truncated` integer, required
          - `type` 'empty', required
  - `status` 'passed' | 'failed' | 'error', required: The outcome of a transform test run, or of one of its expectations. `:error` is an expectation outcome only: that expectation's own query could not be run, while the rest of the run completed and still reported.
  - `tables` object, required

## Other responses

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

## Changes

- **2026-11-04** `2e178f5a7934`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/metabase/apis/metabase-api/changes/api/ee/transform-test/:id/run/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.dev/metabase/apis/metabase-api/revisions/2e178f5a7934?raw)
