## Create Screener `v1.screener.create_screener(ScreenerCreateScreenerParams**kwargs) -> ScreenerCreateScreenerResponse` **post** `/v1/saved-screeners` Create a saved screener configuration. Persists a screener configuration for the authenticated user. ### Parameters - `columns: Optional[Iterable[FieldRefParam]]` Structured field references to include when running this screener - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `"THREE_MONTHS"` - `"SIX_MONTHS"` - `"YEAR_TO_DATE"` - `"ONE_YEAR"` - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `"QUARTER"` - `"TRAILING_TWELVE_MONTHS"` - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `"DECIMAL"` - `"INTEGER"` - `"STRING"` - `"ANALYST_RATING"` - `"DATE"` - `field_filter: Optional[Iterable[FieldRefParam]]` Deprecated: use `columns` instead. Ignored when `columns` is provided. - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `filters: Optional[Iterable[SearchFilterParam]]` Structured search filter criteria - `left: FieldRef` The field to filter on. - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `op: Optional[FilterOpSpec]` The operator and optional arguments. Omit together with `right` for an unenabled filter. - `name: FilterOperator` The operator to apply. - `"LESS_THAN"` - `"LESS_OR_EQUAL"` - `"GREATER_THAN"` - `"GREATER_OR_EQUAL"` - `"EQUAL"` - `"BETWEEN"` - `"NOT_BETWEEN"` - `"ONE_OF"` - `"REGEX"` - `"BEGINS_WITH"` - `"ENDS_WITH"` - `"CONTAINS"` - `"IS_NULL"` - `"IS_NOT_NULL"` - `args: Optional[List[OperatorArg]]` Optional arguments that modify operator behavior. - `"LEFT_INCLUSIVE"` - `"RIGHT_INCLUSIVE"` - `"LEFT_EXCLUSIVE"` - `"RIGHT_EXCLUSIVE"` - `"CASE_INSENSITIVE"` - `right: Optional[List[FilterValue]]` The value(s) to compare against. Omit together with `op` for an unenabled filter. - `value: Optional[Union[float, str, null]]` - `float` - `str` - `variable: Optional[Variable]` A variable reference. - `name: str` The variable name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `modifier: Optional[Modifier]` Optional arithmetic modifier. - `args: List[Union[float, str]]` - `float` - `str` - `name: ModifierOp` The modifier operation. - `"ADD"` - `"SUBTRACT"` - `period: Optional[FieldPeriod]` Optional reporting period. - `name: Optional[str]` The name for this screener configuration - `sorts: Optional[Iterable[SortSpecParam]]` Multi-field sort specifications - `field: FieldRef` The field to sort by. - `direction: Optional[SortDirection]` Sort direction (defaults to DESC). - `"ASC"` - `"DESC"` ### Returns - `class ScreenerCreateScreenerResponse: …` - `data: ScreenerEntry` A saved screener configuration entry - `id: str` - `created_at: datetime` - `filters: List[SearchFilter]` - `left: FieldRef` The field to filter on. - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `"THREE_MONTHS"` - `"SIX_MONTHS"` - `"YEAR_TO_DATE"` - `"ONE_YEAR"` - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `"QUARTER"` - `"TRAILING_TWELVE_MONTHS"` - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `"DECIMAL"` - `"INTEGER"` - `"STRING"` - `"ANALYST_RATING"` - `"DATE"` - `op: Optional[FilterOpSpec]` The operator and optional arguments. Omit together with `right` for an unenabled filter. - `name: FilterOperator` The operator to apply. - `"LESS_THAN"` - `"LESS_OR_EQUAL"` - `"GREATER_THAN"` - `"GREATER_OR_EQUAL"` - `"EQUAL"` - `"BETWEEN"` - `"NOT_BETWEEN"` - `"ONE_OF"` - `"REGEX"` - `"BEGINS_WITH"` - `"ENDS_WITH"` - `"CONTAINS"` - `"IS_NULL"` - `"IS_NOT_NULL"` - `args: Optional[List[OperatorArg]]` Optional arguments that modify operator behavior. - `"LEFT_INCLUSIVE"` - `"RIGHT_INCLUSIVE"` - `"LEFT_EXCLUSIVE"` - `"RIGHT_EXCLUSIVE"` - `"CASE_INSENSITIVE"` - `right: Optional[List[FilterValue]]` The value(s) to compare against. Omit together with `op` for an unenabled filter. - `value: Optional[Union[float, str, null]]` - `float` - `str` - `variable: Optional[Variable]` A variable reference. - `name: str` The variable name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `modifier: Optional[Modifier]` Optional arithmetic modifier. - `args: List[Union[float, str]]` - `float` - `str` - `name: ModifierOp` The modifier operation. - `"ADD"` - `"SUBTRACT"` - `period: Optional[FieldPeriod]` Optional reporting period. - `name: str` - `updated_at: datetime` - `columns: Optional[List[FieldRef]]` Field references included when running this screener. - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `field_filter: Optional[List[FieldRef]]` Deprecated: use `columns` instead. Mirrors `columns`. - `name: str` The field name. - `lookback: Optional[FieldLookback]` Optional historical lookback window. - `period: Optional[FieldPeriod]` Optional reporting period (e.g. quarter or TTM). - `value_type: Optional[FieldType]` The data type of the field value. Present only in responses. - `sorts: Optional[List[SortSpec]]` - `field: FieldRef` The field to sort by. - `direction: Optional[SortDirection]` Sort direction (defaults to DESC). - `"ASC"` - `"DESC"` ### Example ```python from clearstreet import ClearStreet client = ClearStreet( api_key="My API Key", ) response = client.v1.screener.create_screener() print(response) ``` #### Response ```json { "data": { "columns": [ { "name": "symbol" }, { "name": "price" }, { "name": "market_cap" } ], "created_at": "2026-03-20T14:30:00Z", "filters": [ { "left": { "name": "market_cap" }, "op": { "name": "GTE" }, "right": [ { "value": 1000000000 } ] } ], "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "Tech Large Caps", "sorts": [ { "direction": "DESC", "field": { "name": "market_cap" } } ], "updated_at": "2026-03-20T14:30:00Z" }, "error": null, "metadata": { "request_id": "1a2b3c4d-5e6f-7890-1234-5a6b7c8d9e0f" } } ```