---
title: "Get Screener Catalog"
method: GET
path: "/v1/screener/catalog"
tags: ["Screener"]
---

# Get Screener Catalog

`GET /v1/screener/catalog`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/screener/catalog`
- Auth: HTTP bearer

Returns the complete screener field catalog: the field `kinds`, the
per-field data, the enum universes, the request-side `rules`, the built-in
variables and modifiers, and the `POST /screener` default response fields.

`POST /screener` field references are validated against this catalog; its
`rules` object documents how to compose a valid request.

## Response `200`

Screener field catalog

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` Catalog, required: The complete screener field catalog, serialized as the `data` payload of `GET /screener/catalog`.
    - `default_response_fields` string[], required: The `api_name`s that resolve to the POST default column set when `columns` is omitted.
    - `enums` Enums, required: The enum universes every other section's values are drawn from.
      - `builtin_variable` string[], required: The built-in variable names, e.g. `"today"`, `"start_of_year"`.
      - `category` string[], required: `FieldCategory` variants, e.g. `"PROFILE"`, `"VALUATION"`.
      - `date_unit` string[], required: The modifier date units, e.g. `"DAY"`, `"YEAR"`.
      - `format` string[], required: `FieldFormat` variants, e.g. `"CURRENCY"`, `"PERCENT"`.
      - `lookback` string[], required: `FieldLookback` variants, e.g. `"ONE_WEEK"`, `"YEAR_TO_DATE"`.
      - `modifier_op` string[], required: The modifier operation names, `"ADD"` and `"SUBTRACT"`.
      - `operator` string[], required: `FilterOperator` variants, e.g. `"BETWEEN"`, `"ONE_OF"`.
      - `operator_arg` string[], required: The modifier arg forms, e.g. `"LEFT_INCLUSIVE"`.
      - `period` string[], required: `FieldPeriod` variants, e.g. `"QUARTER"`, `"ANNUAL"`.
      - `value_type` string[], required: `FieldValueType` variants, e.g. `"DECIMAL"`, `"DATE"`.
    - `fields` FieldColumns, required: Struct-of-arrays: all four fields are the same length, index `i` is one field.
      - `description` string[], required: A human-readable description of the field.
      - `display_name` string[], required: The display name of the column when no `period` / `lookback` is set.
      - `kind` integer[], required: Index into `Catalog::kinds`.
      - `name` string[], required: The base field name, as accepted in a request's `left.name` / `right[].variable` field reference.
    - `kinds` FieldKind[], required: The deduplicated `(category, format, value_type, combinations, default combination)` tuples; `fields.kind[i]` indexes into this.
      - `category` string, required: The field's category, a member of `enums.category`.
      - `combinations` Combination[], required: Ordered, in declaration order. The empty combination is the current or most recent value.
        - `lookback` string, nullable: The lookback, a member of `enums.lookback`.
        - `period` string, nullable: The period, a member of `enums.period`.
      - `default_combination` Combination, required: A single combination, expressed with the API's own parameter names. At most one of `period` / `lookback` is set; a combination with neither selects the field's current or most recent value.
        - `lookback` string, nullable: The lookback, a member of `enums.lookback`.
        - `period` string, nullable: The period, a member of `enums.period`.
      - `format` string, required: The field's format, a member of `enums.format`.
      - `value_type` string, required: The field's value type, a member of `enums.value_type`.
    - `modifiers` ModifierDef[], required: The modifier operations and their legal `args` forms.
      - `args` ModifierArg[], required: The positional `args` slots, in order.
        - `default` string, nullable: For optional args: the value used when the arg is omitted.
        - `kind` string, required: `"NUMBER"` or `"ENUM"`.
        - `note` string, required: The arg's meaning and constraints.
        - `position` integer, required: Zero-based position in the `args` array.
        - `ref` string, nullable: For `"ENUM"` args: the `enums` list the value must be a member of.
        - `required` boolean, required: Whether the arg must be present in every modifier use.
      - `name` string, required: The modifier operation name: one of `"ADD"` or `"SUBTRACT"`.
    - `operators_by_value_type` object, required: `value_type` -> canonically-ordered valid operators.
    - `rules` Rules, required: Request-side semantics: how to turn the catalog data into a valid `POST /screener` call.
      - `api_name_composition` string, required: Requests and response `field` objects use the same reference shape: base name plus at most one of `period` / `lookback`; `default_response_fields` (the POST default column set when `columns` is omitted) carries api_names, each decoding via `suffixes`.
      - `axes` string, required: At most one of `period` / `lookback`; the empty combination selects the field's current or most recent value.
      - `defaults` string, required: Omitting both is always valid; it resolves to the field's current or most recent value when the kind offers it, otherwise to `default_combination`.
      - `modifiers` string, required: Where `modifier` is legal, its `args` forms, and unit semantics.
      - `operators` string, required: Filter operator value counts for the `right` array.
      - `variables` string, required: Built-in variables and field references in `right[].variable`.
    - `suffixes` object, required: Axis token -> abbreviation, for every token in use in `kinds`.
    - `variables` VariableDef[], required: The built-in variables accepted in `filters[].right[].variable`.
      - `description` string, required: A human-readable description of what the variable resolves to.
      - `name` string, required: The variable name as accepted in `filters[].right[].variable`.
      - `resolves_to` string, required: What the variable resolves to at call time (`DATE` for all built-ins).

## Other responses

- `500`: Internal server error

## Changes

- **2026-10-16** `1bd9eddeffc8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/screener/catalog/get.md)

---

[API](https://skmtc.dev/clear-street/apis/clear-street-trading-api.md) - [All operations](https://skmtc.dev/clear-street/apis/clear-street-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clear-street/apis/clear-street-trading-api/revisions/52e77ea7d731?raw)
