---
title: "Dataset Query"
method: POST
path: "/datasets/{dataset}/query"
tags: ["data"]
---

# Dataset Query

`POST /datasets/{dataset}/query`

Filter, sort, select, and paginate one dataset without accepting SQL.

## Path parameters

- `dataset` string, required

## Request body

- DatasetQueryRequest
  - `columns` string[] — Columns to return. Empty means every customer-visible column.
  - `filters` DatasetFilter[] — Structured filters combined with AND.
    - `column` string, required — Customer-visible dataset column.
    - `operator` 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'contains' | 'is_null', required — Structured comparison operator.
    - `value` unknown
  - `order_by` DatasetSort[] — Sort keys. The dbt grain is appended for deterministic pagination.
    - `column` string, required — Customer-visible dataset column.
    - `direction` 'asc' | 'desc' — Sort direction.
  - `limit` integer — Maximum rows per page.
  - `offset` integer — Zero-based row offset.

## Response `200`

Successful Response

- DatasetQueryResult
  - `columns` string[], required — Returned column names in row order.
  - `rows` array[], required — JSON-compatible result rows.
    - unknown[]
      - unknown
  - `row_count` integer, required — Rows returned in this page.
  - `limit` integer, required — Requested page size.
  - `offset` integer, required — Requested zero-based offset.
  - `has_more` boolean, required — Whether another page is available.
  - `next_offset` integer, nullable, required — Offset for the next page, when available.
  - `omitted_columns` string[] — Licensed columns withheld from this caller.

## Other responses

- `422` — Validation Error

---

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