--- title: Filter structure - iOS description: The Filter structure provides the ability to configure filters that define the data to return in the return results of a REST endpoint query.Creates a filter based on one or more filter criteria that are OR'd together.Creates a filter based on all specified conditions \(AND'd together\)Creates a filter using a specified encoded query.Creates a filter based on specific keywords and conditions that are AND'd together. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/api-reference/cllent-mobile-api-reference/FilteriOSStructure.html release: australia product: Cllent Mobile API Reference classification: cllent-mobile-api-reference topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 2 breadcrumb: [Mobile SDK - iOS, Mobile SDK API reference, API reference, API implementation and reference] --- # Filter structure- iOS The Filter structure provides the ability to configure filters that define the data to return in the return results of a REST endpoint query. **Parent Topic:**[Mobile SDK - iOS](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/cllent-mobile-api-reference/MobileSDKiOSAPI.md) ## Filter - init\(criteria criteriaList: \[Criteria\], sortBy: \[Sort\]? = nil, queryCategory: String? = nil\) Creates a filter based on one or more filter criteria that are OR'd together.
Name Type Description
criteria Array Top level criteria conditions to group with `OR` connectors.
sortBy String Optional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
queryCategory String Optional. Name of the query category.Default: None
|Type|Description| |----|-----------| |None| | The following example shows creating three separate criteria and when passed in, if any of those criteria are met, the record is passed back in the return results. ``` // All of criteria1 conditions must be met let criteria1 = Criteria(conditions: …) // OR all of criteria2 conditions must be met let criteria2 = Criteria(conditions: …) // OR all of criteria3 conditions must be met let criteria3 = Criteria(conditions: …) let filter = Filter(criterias: [criteria1, criteria2, criteria3]) ``` ## Filter - init\(conditions: \[QueryProviding\], sorts: \[Sort\]? = nil\) Creates a filter based on all specified conditions \(AND'd together\)
Name Type Description
conditions QueryProviding Conditions to group with an `AND` connector.Possible values: - boolean - dateTime - email - integerChoice - numeric - reference - string - stringChoice
sorts String Optional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
|Type|Description| |----|-----------| |None| | The following code example shows how to call this function. ``` // Where the record is active let condition1 = Condition.boolean(field: "active", .is(true)) // AND the date value of the SLA due field is on "today" or any date after today. let condition2 = Condition.dateTime(field: "sla_due", .atOrAfter(0, .daysAgoStart)) let filter = Filter(conditions: [condition1, condition2]) ``` ## Filter - init\(query: String, queryCategory: String? = nil\) Creates a filter using a specified encoded query. |Name|Type|Description| |----|----|-----------| |query|String|[Encoded query](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-user-interface/c_EncodedQueryStrings.md)[Encoded query](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-user-interface/c_EncodedQueryStrings.md) to use to filter the records to return from the table.| |queryCategory|String|Optional. Name of the query category to use for the query.| |Type|Description| |----|-----------| |None| | The following code example shows how to call this function. ``` let query = "active=true^short_descriptionLIKEbroken" let filter = Filter(query: query) ``` ## Filter - init\(keywords: String? = nil, conditions: \[Condition\], sortBy: \[Sort\]? = nil\) Creates a filter based on specific keywords and conditions that are AND'd together.
Name Type Description
keywords String Optional. Any specific word or phrase to search for.Default: nil - No specific word search.
conditions String Conditions to group with an `AND` connector.Possible values: - boolean - dateTime - email - integerChoice - numeric - reference - string - stringChoice
sortBy String Optional. Sort order of the return results.Possible values: - asc: Ascending - desc: Desending Default: asc
|Type|Description| |----|-----------| |None| | ``` // Keyword that must be found in the record let searchTerm = "…" // AND the specified condition must be met let condition1 = Condition.email(field: "state", .changesFrom("4")) let filter = Filter(keywords: searchTerm, condition: condition1) ```