## Search Screener `ScreenerSearchScreenerResponse v1().screener().searchScreener(ScreenerSearchScreenerParamsparams = ScreenerSearchScreenerParams.none(), RequestOptionsrequestOptions = RequestOptions.none())` **post** `/v1/screener` Search instruments using structured filters. Returns a columnar response where each row is an array of column objects. Each column contains a human-readable name, a field reference, an optional type hint (e.g. `CURR_USD`, `PERCENT`), and the value. Use `columns` to select which columns appear in each row. When omitted, the default field set is returned. ### Parameters - `ScreenerSearchScreenerParams params` - `Optional> columns` Subset of fields to include in the response. - `String name` The field name. - `Optional lookback` Optional historical lookback window. - `ONE_DAY("ONE_DAY")` - `ONE_WEEK("ONE_WEEK")` - `ONE_MONTH("ONE_MONTH")` - `THREE_MONTHS("THREE_MONTHS")` - `SIX_MONTHS("SIX_MONTHS")` - `YEAR_TO_DATE("YEAR_TO_DATE")` - `ONE_YEAR("ONE_YEAR")` - `Optional period` Optional reporting period (e.g. quarter or TTM). - `QUARTER("QUARTER")` - `TRAILING_TWELVE_MONTHS("TRAILING_TWELVE_MONTHS")` - `Optional valueType` The data type of the field value. Present only in responses. - `DECIMAL("DECIMAL")` - `INTEGER("INTEGER")` - `STRING("STRING")` - `ANALYST_RATING("ANALYST_RATING")` - `DATE("DATE")` - `Optional> fieldFilter` Deprecated: use `columns` instead. Ignored when `columns` is provided. - `String name` The field name. - `Optional lookback` Optional historical lookback window. - `Optional period` Optional reporting period (e.g. quarter or TTM). - `Optional valueType` The data type of the field value. Present only in responses. - `Optional> filters` Filter conditions to apply. - `FieldRef left` The field to filter on. - `String name` The field name. - `Optional lookback` Optional historical lookback window. - `Optional period` Optional reporting period (e.g. quarter or TTM). - `Optional valueType` The data type of the field value. Present only in responses. - `Optional op` The operator and optional arguments. Omit together with `right` for an unenabled filter. - `FilterOperator name` The operator to apply. - `LESS_THAN("LESS_THAN")` - `LESS_OR_EQUAL("LESS_OR_EQUAL")` - `GREATER_THAN("GREATER_THAN")` - `GREATER_OR_EQUAL("GREATER_OR_EQUAL")` - `EQUAL("EQUAL")` - `BETWEEN("BETWEEN")` - `NOT_BETWEEN("NOT_BETWEEN")` - `ONE_OF("ONE_OF")` - `REGEX("REGEX")` - `BEGINS_WITH("BEGINS_WITH")` - `ENDS_WITH("ENDS_WITH")` - `CONTAINS("CONTAINS")` - `IS_NULL("IS_NULL")` - `IS_NOT_NULL("IS_NOT_NULL")` - `Optional> args` Optional arguments that modify operator behavior. - `LEFT_INCLUSIVE("LEFT_INCLUSIVE")` - `RIGHT_INCLUSIVE("RIGHT_INCLUSIVE")` - `LEFT_EXCLUSIVE("LEFT_EXCLUSIVE")` - `RIGHT_EXCLUSIVE("RIGHT_EXCLUSIVE")` - `CASE_INSENSITIVE("CASE_INSENSITIVE")` - `Optional> right` The value(s) to compare against. Omit together with `op` for an unenabled filter. - `Optional value` - `double` - `String` - `Optional variable` A variable reference. - `String name` The variable name. - `Optional lookback` Optional historical lookback window. - `Optional modifier` Optional arithmetic modifier. - `List args` - `double` - `String` - `ModifierOp name` The modifier operation. - `ADD("ADD")` - `SUBTRACT("SUBTRACT")` - `Optional period` Optional reporting period. - `Optional pageSize` The number of items to return per page (only used when page_token is not provided) - `Optional pageToken` Token for retrieving the next page of results. Contains encoded pagination state (limit + offset). When provided, page_size is ignored. - `Optional sortCaseSensitive` Whether string sorts should be case-sensitive (default: false). - `Optional> sorts` Multi-field sort specifications. - `FieldRef field` The field to sort by. - `Optional direction` Sort direction (defaults to DESC). - `ASC("ASC")` - `DESC("DESC")` ### Returns - `class ScreenerSearchScreenerResponse:` - `List> data` - `FieldRef field` Field reference (same shape as filter/sort field references) - `String name` The field name. - `Optional lookback` Optional historical lookback window. - `ONE_DAY("ONE_DAY")` - `ONE_WEEK("ONE_WEEK")` - `ONE_MONTH("ONE_MONTH")` - `THREE_MONTHS("THREE_MONTHS")` - `SIX_MONTHS("SIX_MONTHS")` - `YEAR_TO_DATE("YEAR_TO_DATE")` - `ONE_YEAR("ONE_YEAR")` - `Optional period` Optional reporting period (e.g. quarter or TTM). - `QUARTER("QUARTER")` - `TRAILING_TWELVE_MONTHS("TRAILING_TWELVE_MONTHS")` - `Optional valueType` The data type of the field value. Present only in responses. - `DECIMAL("DECIMAL")` - `INTEGER("INTEGER")` - `STRING("STRING")` - `ANALYST_RATING("ANALYST_RATING")` - `DATE("DATE")` - `String name` Human-readable display name for this field - `Optional value` - `double` - `String` - `Optional type` Value format hint: "CURR_USD", "PERCENT", etc. Omitted when not applicable. When a null/undefined value is observed, it indicates it does not apply. ### Example ```java package com.clearstreet.api.example; import com.clearstreet.api.client.ClearStreetClient; import com.clearstreet.api.client.okhttp.ClearStreetOkHttpClient; import com.clearstreet.api.models.v1.screener.ScreenerSearchScreenerParams; import com.clearstreet.api.models.v1.screener.ScreenerSearchScreenerResponse; public final class Main { private Main() {} public static void main(String[] args) { ClearStreetClient client = ClearStreetOkHttpClient.builder() .fromEnv() .apiKey("My API Key") .build(); ScreenerSearchScreenerResponse response = client.v1().screener().searchScreener(); } } ``` #### Response ```json { "data": [ [ { "field": { "name": "symbol" }, "name": "Symbol", "value": "AAPL" }, { "field": { "name": "price" }, "name": "Price", "type": "CURR_USD", "value": 175.05 }, { "field": { "name": "market_cap" }, "name": "Market Cap", "type": "CURR_USD", "value": 3500000000000 }, { "field": { "name": "beta" }, "name": "Beta", "value": 1.2 }, { "field": { "lookback": "ONE_WEEK", "name": "change_pct" }, "name": "Change (1W)", "type": "PERCENT", "value": 2.35 }, { "field": { "name": "consensus_rating" }, "name": "Consensus Rating", "value": "STRONG_BUY" }, { "field": { "name": "earnings_per_share", "period": "QUARTER" }, "name": "EPS (Q)", "type": "CURR_USD", "value": 1.55 } ], [ { "field": { "name": "symbol" }, "name": "Symbol", "value": "F" }, { "field": { "name": "price" }, "name": "Price", "type": "CURR_USD", "value": 12.5 }, { "field": { "name": "market_cap" }, "name": "Market Cap", "type": "CURR_USD", "value": 45000000000 }, { "field": { "name": "beta" }, "name": "Beta", "value": 1.5 }, { "field": { "lookback": "ONE_WEEK", "name": "change_pct" }, "name": "Change (1W)", "type": "PERCENT", "value": -0.85 }, { "field": { "name": "consensus_rating" }, "name": "Consensus Rating", "value": "HOLD" }, { "field": { "name": "earnings_per_share", "period": "QUARTER" }, "name": "EPS (Q)", "type": "CURR_USD", "value": 0.23 } ] ], "metadata": { "next_page_token": "AAAAAAAAAAoAAAAAAAAAAg", "request_id": "abc-123" } } ```