# Filter

Use `$filter` to narrow the resources returned by an API request.

The current OpenAPI specifications document `$filter` for:

* DAM list operations, such as `GET /dam/image`
* Catalog list and changelog operations, such as `GET /catalog/rest/Catalog/Products`


## Syntax


```text
$filter=PROPERTY_NAME operator VALUE
```

Example:


```http
GET https://api2.saleslayer.com/catalog/rest/Catalog/Products?$filter=contains(prod_title,'EC')
```

## Supported expressions

Filtering can use comparison operators, logical operators, and string functions where supported by the endpoint.

Examples:


```text
prod_ref eq 'ABC-001'
contains(prod_title,'EC')
cat_ref eq 'LPG' or cat_title eq 'Products'
```

## Supported properties

For Catalog resources, use metadata endpoints to confirm the fields available for filtering.

For DAM images, use the [DAM endpoint reference](/apis/dam-v2.0) for supported query fields and examples.

## Limitations

Based on the migrated documentation and the current API descriptions:

* Filters apply to the root resource being requested.
* Filtering nested resource properties is not documented as supported.
* Property names, operators, and value formats must match the resource metadata and API reference.


## Example with `$select`


```http
GET https://api2.saleslayer.com/catalog/rest/Catalog/Products?$select=prod_ref,prod_title&$filter=contains(prod_title,'EC')
```

## Notes

* Use URL encoding when filter values contain spaces, quotes, or special characters.
* Combine multiple conditions with `and` or `or` when supported.
* Test filters with small page sizes before running large synchronization jobs.