diff --git a/langfuse/api/reference.md b/langfuse/api/reference.md
index b9e598e7e..f2e9baa07 100644
--- a/langfuse/api/reference.md
+++ b/langfuse/api/reference.md
@@ -6906,6 +6906,38 @@ client.trace.list()
-
+**filter:** `typing.Optional[str]`
+
+JSON string containing an array of filter conditions. When provided, this takes precedence over legacy filter parameters (userId, name, sessionId, tags, version, release, environment, fromTimestamp, toTimestamp).
+Each filter condition has the following structure:
+```json
+[
+ {
+ "type": string, // Required. One of: "datetime", "string", "number", "stringOptions", "categoryOptions", "arrayOptions", "stringObject", "numberObject", "boolean", "null"
+ "column": string, // Required. Column to filter on
+ "operator": string, // Required. Operator based on type:
+ // - datetime: ">", "<", ">=", "<="
+ // - string: "=", "contains", "does not contain", "starts with", "ends with"
+ // - stringOptions: "any of", "none of"
+ // - categoryOptions: "any of", "none of"
+ // - arrayOptions: "any of", "none of", "all of"
+ // - number: "=", ">", "<", ">=", "<="
+ // - stringObject: "=", "contains", "does not contain", "starts with", "ends with"
+ // - numberObject: "=", ">", "<", ">=", "<="
+ // - boolean: "=", "<>"
+ // - null: "is null", "is not null"
+ "value": any, // Required (except for null type). Value to compare against. Type depends on filter type
+ "key": string // Required only for stringObject, numberObject, and categoryOptions types when filtering on nested fields like metadata
+ }
+]
+```
+
+
+
+
+
+-
+
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
diff --git a/langfuse/api/resources/trace/client.py b/langfuse/api/resources/trace/client.py
index 824142a27..7c5d803d7 100644
--- a/langfuse/api/resources/trace/client.py
+++ b/langfuse/api/resources/trace/client.py
@@ -173,6 +173,7 @@ def list(
release: typing.Optional[str] = None,
environment: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
fields: typing.Optional[str] = None,
+ filter: typing.Optional[str] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> Traces:
"""
@@ -216,6 +217,31 @@ def list(
fields : typing.Optional[str]
Comma-separated list of fields to include in the response. Available field groups: 'core' (always included), 'io' (input, output, metadata), 'scores', 'observations', 'metrics'. If not specified, all fields are returned. Example: 'core,scores,metrics'. Note: Excluded 'observations' or 'scores' fields return empty arrays; excluded 'metrics' returns -1 for 'totalCost' and 'latency'.
+ filter : typing.Optional[str]
+ JSON string containing an array of filter conditions. When provided, this takes precedence over legacy filter parameters (userId, name, sessionId, tags, version, release, environment, fromTimestamp, toTimestamp).
+ Each filter condition has the following structure:
+ ```json
+ [
+ {
+ "type": string, // Required. One of: "datetime", "string", "number", "stringOptions", "categoryOptions", "arrayOptions", "stringObject", "numberObject", "boolean", "null"
+ "column": string, // Required. Column to filter on
+ "operator": string, // Required. Operator based on type:
+ // - datetime: ">", "<", ">=", "<="
+ // - string: "=", "contains", "does not contain", "starts with", "ends with"
+ // - stringOptions: "any of", "none of"
+ // - categoryOptions: "any of", "none of"
+ // - arrayOptions: "any of", "none of", "all of"
+ // - number: "=", ">", "<", ">=", "<="
+ // - stringObject: "=", "contains", "does not contain", "starts with", "ends with"
+ // - numberObject: "=", ">", "<", ">=", "<="
+ // - boolean: "=", "<>"
+ // - null: "is null", "is not null"
+ "value": any, // Required (except for null type). Value to compare against. Type depends on filter type
+ "key": string // Required only for stringObject, numberObject, and categoryOptions types when filtering on nested fields like metadata
+ }
+ ]
+ ```
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -258,6 +284,7 @@ def list(
"release": release,
"environment": environment,
"fields": fields,
+ "filter": filter,
},
request_options=request_options,
)
@@ -524,6 +551,7 @@ async def list(
release: typing.Optional[str] = None,
environment: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
fields: typing.Optional[str] = None,
+ filter: typing.Optional[str] = None,
request_options: typing.Optional[RequestOptions] = None,
) -> Traces:
"""
@@ -567,6 +595,31 @@ async def list(
fields : typing.Optional[str]
Comma-separated list of fields to include in the response. Available field groups: 'core' (always included), 'io' (input, output, metadata), 'scores', 'observations', 'metrics'. If not specified, all fields are returned. Example: 'core,scores,metrics'. Note: Excluded 'observations' or 'scores' fields return empty arrays; excluded 'metrics' returns -1 for 'totalCost' and 'latency'.
+ filter : typing.Optional[str]
+ JSON string containing an array of filter conditions. When provided, this takes precedence over legacy filter parameters (userId, name, sessionId, tags, version, release, environment, fromTimestamp, toTimestamp).
+ Each filter condition has the following structure:
+ ```json
+ [
+ {
+ "type": string, // Required. One of: "datetime", "string", "number", "stringOptions", "categoryOptions", "arrayOptions", "stringObject", "numberObject", "boolean", "null"
+ "column": string, // Required. Column to filter on
+ "operator": string, // Required. Operator based on type:
+ // - datetime: ">", "<", ">=", "<="
+ // - string: "=", "contains", "does not contain", "starts with", "ends with"
+ // - stringOptions: "any of", "none of"
+ // - categoryOptions: "any of", "none of"
+ // - arrayOptions: "any of", "none of", "all of"
+ // - number: "=", ">", "<", ">=", "<="
+ // - stringObject: "=", "contains", "does not contain", "starts with", "ends with"
+ // - numberObject: "=", ">", "<", ">=", "<="
+ // - boolean: "=", "<>"
+ // - null: "is null", "is not null"
+ "value": any, // Required (except for null type). Value to compare against. Type depends on filter type
+ "key": string // Required only for stringObject, numberObject, and categoryOptions types when filtering on nested fields like metadata
+ }
+ ]
+ ```
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -617,6 +670,7 @@ async def main() -> None:
"release": release,
"environment": environment,
"fields": fields,
+ "filter": filter,
},
request_options=request_options,
)