# Filtering & Sorting

> Learn how to filter and sort data returned by Lev API list endpoints.

Source: https://www.lev.com/docs/build/filtering-sorting

Last updated: March 2026

---
## Filtering

Filter results by field values using the `filter` query parameter:

```bash
# Equality filter
GET /deals?filter[loan_type]=heavy_bridge

# Multiple values (OR)
GET /deals?filter[loan_type]=heavy_bridge,permanent

# Range filter
GET /deals?filter[loan_amount][gte]=1000000&filter[loan_amount][lte]=5000000

# Date filter
GET /deals?filter[created_at][gte]=2026-01-01
```

### Available filter fields by resource

| Resource | Filterable Fields |
|----------|-------------------|
| **Deals** | `loan_type`, `transaction_type`, `business_plan`, `loan_amount`, `created_at`, `updated_at` |
| **Contacts** | Varies by endpoint |
| **Companies** | Varies by endpoint |
| **Lender Directory** | `state`, `name` (search) |

## Filter Operators

| Operator | Syntax | Description | Example |
|----------|--------|-------------|---------|
| `eq` | `filter[field]=value` | Equals (default) | `filter[loan_type]=heavy_bridge` |
| `gt` | `filter[field][gt]=value` | Greater than | `filter[loan_amount][gt]=1000000` |
| `gte` | `filter[field][gte]=value` | Greater than or equal | `filter[created_at][gte]=2026-01-01` |
| `lt` | `filter[field][lt]=value` | Less than | `filter[loan_amount][lt]=5000000` |
| `lte` | `filter[field][lte]=value` | Less than or equal | `filter[updated_at][lte]=2026-03-01` |

Multiple values for `eq` are comma-separated and treated as OR: `filter[loan_type]=heavy_bridge,permanent` matches either.

## Sorting

Sort results using the `sort` query parameter. Prefix with `-` for descending order:

```bash
# Sort by created_at descending
GET /deals?sort=-created_at

# Multiple sort fields
GET /deals?sort=-loan_amount,title
```

### Available sort fields by resource

| Resource | Sortable Fields |
|----------|----------------|
| **Deals** | `title`, `loan_amount`, `created_at`, `updated_at` |
| **Lender Directory** | `name` |

> **Note:** When `sort` is specified, the API uses offset pagination instead of cursor pagination.

## Sparse Fieldsets

Reduce response payload by requesting only specific fields:

```bash
GET /deals?fields=id,title,loan_amount,created_at
```

The `id` field is always included regardless of the `fields` parameter.

## Includes

Embed related sub-resources in a single request using the `include` parameter:

```bash
# Include financials and properties with deals
GET /deals?include=financials,properties

# Include on a single deal
GET /deals/123?include=financials,properties
```

### Available includes by resource

| Resource | Available Includes |
|----------|--------------------|
| **Deals** | `financials`, `properties` |