@@ -3820,9 +3820,24 @@ def list_projects(
38203820 - status__notin: List[Literal[“NotStarted”, “InProgress”, “Completed”, “OnHold”]]
38213821
38223822 Custom Fields Filtering:
3823+
38233824 - Custom fields must be prefixed with `custom_field__`.
38243825 - Example: custom_field__Due_date__gte="1738281600" (filtering users whose Due_date is after the given Unix timestamp).
3825- - If include does not include "custom_fields" but filter contains custom_fields, an error will be returned
3826+ - If include does not include “custom_fields” but filter contains ‘custom_field’, an error will be returned
3827+
3828+ - **Text** custom field only works with the following filter params: __in, __notin, __contains
3829+ - **Numeric** custom field only works with the following filter params: __in, __notin, __ne, __gt, __gte, __lt, __lte
3830+ - **Single-select** custom field only works with the following filter params: __in, __notin, __contains
3831+ - **Multi-select** custom field only works with the following filter params: __in, __notin
3832+ - **Date picker** custom field only works with the following filter params: __gt, __gte, __lt, __lte
3833+
3834+ **If custom field has a space, please use the following format to filter them**:
3835+ ::
3836+
3837+ project_filters = {
3838+ "custom_field__new single select custom field__contains": "text"
3839+ }
3840+ client.list_projects(include=["custom_fields"], **project_filters)
38263841
38273842 :type filters: ProjectFilters, optional
38283843
@@ -3833,10 +3848,10 @@ def list_projects(
38333848 ::
38343849
38353850 client.list_projects(
3836- name__contains="Medical",
38373851 include=["custom_fields"],
38383852 status__in=["InProgress", "Completed"],
3839- custom_fields__Tag__in=["Tag1", "Tag3"]
3853+ name__contains="Medical",
3854+ custom_field__Tag__in=["Tag1", "Tag3"]
38403855 )
38413856
38423857 Response Example:
0 commit comments