---
title: "MSS Get Data Query"
method: GET
path: "/select/apidata"
tags: ["mss-api-controller"]
---

# MSS Get Data Query

`GET /select/apidata`

## Request

- Base URL: `https://api3.mountain.com`
- URL: `https://api3.mountain.com/select/apidata`
- Auth: none declared
- TypeScript: <https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/docs/select/apidata/get.ts> (a function with typed inputs; its response is checked against the schema)

After validating the user request api key runs a query against the reporting data service

## Query parameters

- `query` MSSGetRequest, required: Data Request
  - `key` string: API Key
  - `allownull` boolean: column to group by
  - `data` ColumnNames[], required
  - `sum` ColumnNames[]
  - `filter` string: Optional filter as a URL-encoded JSON object using the same filter types as the **POST** body `filter` field. Optional JSON **object** that restricts which rows are returned. Use the same shape for **POST** `filter` and **GET** `filter` (URL-encoded). **Filter types — column predicates:** Each property key is a column identifier (`table.column`). The value can be: - **Operator object:** keys are operator names and values are comparison values (for example `{"equals": "Live"}`, `{"in": ["a","b"]}`). - **Scalar** (string or number): shorthand for `equals`. - **Array:** shorthand for membership (`in`). **Filter types — logical groups:** Properties named `AND`, `OR`, or `NOT` hold a nested object that follows the same rules (more column predicates and/or nested `AND` / `OR` / `NOT`). **Operator keys** (allowed keys inside an operator object): `equals`, `not`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `contains`, `notContains`, `startsWith`, `endsWith`, `hasAny`. Use **GET /apilist** to discover valid column identifiers (for `data`, `sum`, and `filter`).
  - `begin` string, required: start date of the query
  - `end` string: end date of the query
  - `oid` integer[], required: list of advertiser ids to query
  - `format` 'human' | 'json' | 'csv' | 'excel': defines the content type of the response
  - `formatdata` boolean: when set to true, the values in the response data will be each be formatted
  - `fullname` boolean
  - `includetoday` boolean: when set to true, the response will include the current day's data
  - `period` 'day' | 'week' | 'month' | 'year': when set, the response will group the data by the input period
  - `limit` integer: when set, the number of rows returned will be limited to this number
  - `offset` integer: when set, the query will skip this number of rows. Used for pagination
  - `sort` string[]: when set, data will be returned sorted by this column and direction
  - `accounttypes` integer[]: List of account type IDs
  - `dataColumns` string[]

## Response `200`

OK

- object

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `413`: Payload Too Large — the query exceeds server memory limits. Use the asynchronous /batch endpoint for large requests.
- `500`: Internal Server Error
- `504`: Gateway Timeout — the query exceeded the synchronous request time limit.

---

[API](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api.md) - [All operations](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mountain/apis/mntn-ai-ops-reporting-api/revisions/826e4445c45e?raw)
