> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.repliers.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Filtering Listings by Date and Timestamps

# Overview

When building real estate applications on top of the Repliers API, one of the most common requirements is narrowing results by time — whether you want listings added in the last 30 days, sold within a specific window, or recently changed so you can bring your website back in sync after your webhook endpoints experienced downtime. This guide walks through every date and timestamp parameter available on the `POST /listings` endpoint, explains what each one targets, and shows you how to combine them effectively.

---

## Date Format

All date parameters accept values in **ISO 8601 date format**: `YYYY-MM-DD`

```
2024-11-01
```

---

## Parameter Groups

Date filters on the listings endpoint fall into eight logical groups based on what they target in the listing lifecycle.

---

### 1. Listing Date (When a Listing Hit the MLS)

These parameters filter by the date a listing was originally added to the MLS.

| Parameter | Description |
|---|---|
| `listDate` | Match listings added to the MLS on this **exact** date. |
| `minListDate` | Returns listings added to the MLS **on or after** this date. |
| `maxListDate` | Returns listings added to the MLS **on or before** this date. |

**Example — listings added to the MLS in November 2024:**

```
POST /listings?minListDate=2024-11-01&maxListDate=2024-11-30
```

> **Tip:** Use `minListDate` and `maxListDate` together to define a range. Using `listDate` alone matches only a single day.

---

### 2. Updated On (Last MLS Update)

These parameters filter by the date a listing was last updated **on the MLS side**.

| Parameter | Description |
|---|---|
| `updatedOn` | Match listings last updated on this **exact** date. |
| `minUpdatedOn` | Returns listings last updated **on or after** this date. |
| `maxUpdatedOn` | Returns listings last updated **on or before** this date. |

**Example — listings that received any MLS update this week:**

```
POST /listings?minUpdatedOn=2024-11-18
```

> **Note:** `updatedOn` reflects MLS-side updates — price changes, status changes, remarks edits, and so on. It does not capture Repliers-internal updates (see `repliersUpdatedOn` below).

---

### 3. Repliers Updated On (Internal Timestamp)

`repliersUpdatedOn` is a Repliers-internal timestamp that gets updated when Repliers recalculates data that isn't sourced directly from the MLS — for example, when a property estimate is refreshed or when Repliers-specific enrichments change.

| Parameter | Description |
|---|---|
| `repliersUpdatedOn` | Match listings whose `repliersUpdatedOn` is this **exact** date. |
| `minRepliersUpdatedOn` | Returns listings whose `repliersUpdatedOn` is **on or after** this date. |
| `maxRepliersUpdatedOn` | Returns listings whose `repliersUpdatedOn` is **on or before** this date. |

A practical use case for `minRepliersUpdatedOn` is **recovering from webhook delivery failures**. If your webhook endpoint experienced downtime and you missed a batch of events, you can use this parameter to fetch all listings that changed during that window and reconcile your local state.

**Example — fetch listings updated by Repliers since a specific date:**

```
POST /listings?minRepliersUpdatedOn=2024-11-19
```

> **Note:** Use `minRepliersUpdatedOn` (rather than `minUpdatedOn`) when you need to catch changes to Repliers-enriched fields such as estimates, which are not reflected in the MLS `updatedOn` timestamp.

---

### 4. Sold / Leased Date

These parameters apply to sold and leased listings and filter by when the transaction closed.

| Parameter | Description |
|---|---|
| `minSoldDate` | Returns sold/leased listings with a sold date **on or after** this value. |
| `maxSoldDate` | Returns sold/leased listings with a sold date **on or before** this value. |

**Example — sold listings in Q3 2024:**

```
POST /listings?lastStatus=Sld&minSoldDate=2024-07-01&maxSoldDate=2024-09-30
```

> **Note:** Combine with `lastStatus=Sld` or `lastStatus=Lsd` for sold and leased listings respectively. See [lastStatus Definitions](https://help.repliers.com/en/article/laststatus-definitions-8mokhu) for the full list of status values.

---

### 5. Closed Date

Close Date refers to the formal closing or completion date of a transaction — distinct from the sold date on some MLSes.

| Parameter | Description |
|---|---|
| `minClosedDate` | Returns listings with a close date **on or after** this value. |
| `maxClosedDate` | Returns listings with a close date **on or before** this value. |

**Example — transactions closed in the past 90 days:**

```
POST /listings?minClosedDate=2024-08-21&maxClosedDate=2024-11-19
```

---

### 6. Unavailable Date

These parameters filter by the date a listing transitioned out of active status — that is, when it became unavailable. This applies to listings that ended their active period for any reason, including sold transactions as well as non-sold outcomes such as terminations, suspensions, expirations, and defaults (`lastStatus` values of `Sus`, `Exp`, `Ter`, `Dft`).

The key distinction from `minSoldDate` / `maxSoldDate` is that `unavailableDate` is set for **all** inactive outcomes, not just sold ones. It is most useful when you want to track when a listing left the market regardless of how it did so.

| Parameter | Description |
|---|---|
| `minUnavailableDate` | Returns listings that became unavailable **on or after** this date. |
| `maxUnavailableDate` | Returns listings that became unavailable **on or before** this date. |

**Example — listings that left the market this month, regardless of outcome:**

```
POST /listings?status=U&minUnavailableDate=2024-11-01
```

> **Heads up:** Not all MLSes provide unavailable date data. If your board doesn't support it, these parameters will have no effect. For a full breakdown of status values, see [lastStatus Definitions](https://help.repliers.com/en/article/laststatus-definitions-8mokhu).

---

### 7. Price Change Date

These parameters allow you to find listings based on when their price was last changed — useful for building "price reduced" features.

| Parameter | Description |
|---|---|
| `minPriceChangeDateTime` | Returns listings that had a price change **on or after** this date. |
| `maxPriceChangeDateTime` | Returns listings that had a price change **on or before** this date. |

**Example — listings with a price change in the last 7 days:**

```
POST /listings?status=A&minPriceChangeDateTime=2024-11-12
```

> **Tip:** Pair with `lastPriceChangeType=decrease` to show only price reductions — a popular feature for deal-hunting interfaces.

---

### 8. Open House Date

These parameters filter for listings that have an open house scheduled within a date range.

| Parameter | Description |
|---|---|
| `minOpenHouseDate` | Returns listings with an open house **on or after** this date. |
| `maxOpenHouseDate` | Returns listings with an open house **on or before** this date. |

**Example — listings with an open house this weekend:**

```
POST /listings?minOpenHouseDate=2024-11-23&maxOpenHouseDate=2024-11-24
```

---

## The `timestamps` Object in Responses

When fetching listing data, you'll find a `timestamps` object nested inside each listing. This object exposes a full set of granular sub-timestamps that go beyond the top-level date filter fields:

```json
"timestamps": {
  "idxUpdated": "2026-04-16T11:59:16.000Z",
  "listingUpdated": "2026-04-16T11:59:16.000Z",
  "photosUpdated": null,
  "conditionalExpiryDate": null,
  "terminatedDate": null,
  "suspendedDate": null,
  "listingEntryDate": "2026-04-16T15:59:16.000Z",
  "closedDate": null,
  "unavailableDate": null,
  "expiryDate": "2027-04-15T00:00:00.000Z",
  "extensionEntryDate": null,
  "possessionDate": "2026-09-01T00:00:00.000Z",
  "repliersUpdatedOn": "2026-04-16T16:59:11.030Z",
  "imageInsightsUpdatedOn": null
}
```

These are **response-only fields** — they cannot all be used as filter parameters directly, but they're useful for display logic and understanding the full lifecycle of a listing in your application.

---

## Sorting by Date

In addition to filtering, you can sort results by date-related fields using the `sortBy` parameter:

| Value | Behavior |
|---|---|
| `updatedOnDesc` *(default)* | Most recently updated first |
| `updatedOnAsc` | Oldest update first |
| `createdOnDesc` | Most recently created first |
| `createdOnAsc` | Oldest creation first |
| `soldDateDesc` | Most recently sold first |
| `soldDateAsc` | Oldest sold first |
| `repliersUpdatedOnDesc` | Most recently updated by Repliers first |
| `repliersUpdatedOnAsc` | Oldest Repliers update first |

**Example — most recently updated active listings:**

```
POST /listings?status=A&sortBy=updatedOnDesc
```

---

## Common Use Cases

### Show newly listed properties (last 7 days)

```
POST /listings?status=A&minListDate=2024-11-12
```

### Build a "recently sold" market page

```
POST /listings?lastStatus=Sld&minSoldDate=2024-10-01&maxSoldDate=2024-10-31&sortBy=soldDateDesc
```

### Catch up on missed updates after webhook downtime

```
POST /listings?minUpdatedOn=2024-11-19
```

For changes to Repliers-enriched fields (e.g. estimates) that aren't tracked by the MLS, use `minRepliersUpdatedOn` instead.

### Find listings with recent price reductions

```
POST /listings?status=A&minPriceChangeDateTime=2024-11-12&lastPriceChangeType=decrease
```

### Upcoming open houses this week

```
POST /listings?minOpenHouseDate=2024-11-20&maxOpenHouseDate=2024-11-26
```

### All listings that left the market this month (any reason)

```
POST /listings?status=U&minUnavailableDate=2024-11-01
```

---

## Summary Reference Table

| Parameter | Targets | Supports Range |
|---|---|---|
| `listDate` | Date listed on MLS | Exact only |
| `minListDate` / `maxListDate` | Date listed on MLS | ✅ |
| `updatedOn` | Last MLS update date | Exact only |
| `minUpdatedOn` / `maxUpdatedOn` | Last MLS update date | ✅ |
| `repliersUpdatedOn` | Internal Repliers update | Exact only |
| `minRepliersUpdatedOn` / `maxRepliersUpdatedOn` | Internal Repliers update | ✅ |
| `minSoldDate` / `maxSoldDate` | Sold/leased date | ✅ |
| `minClosedDate` / `maxClosedDate` | Formal closing date | ✅ |
| `minUnavailableDate` / `maxUnavailableDate` | Date became unavailable (all inactive outcomes) | ✅ |
| `minPriceChangeDateTime` / `maxPriceChangeDateTime` | Last price change date | ✅ |
| `minOpenHouseDate` / `maxOpenHouseDate` | Open house date | ✅ |

---

## Related Articles

- [Searching, Filtering and Paginating Listings Guide](https://help.repliers.com/en/article/searching-filtering-and-pagination-guide-1q1n7x0)
- [lastStatus Definitions](https://help.repliers.com/en/article/laststatus-definitions-8mokhu)
- [Using Aggregates To Determine Acceptable Values For Filters](https://help.repliers.com/en/article/using-aggregates-to-determine-acceptable-values-for-filters-c88csc)
