Daily Jobs for Any Listing Updates

Detect listings with any changes using the modification timestamp filters

Use Case: Get All Updated Listings Every Day

Current Date: April 2, 2025

Goal: Pull all of the updated listings from yesterday - April 1, 2025

Assumptions: You have already completed a large initial load job and have the listing_id's for everything you have pulled/care about. You will compare the records/listing_id's you pull in this code to what you already have cached and update the relevant records on your side.


{
  "size": 250,
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02"
}

Or use city, mls_board_code, zip, or other geo filters to prioritize your updates:

{
  "city": "Richmond",
  "state": "VA",
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02"
}

Process the results and collect all listing_id values into an array. Compare each listing ID against your locally cached IDs to identify which ones need updating. You may need to page through all results to get the full list.


Get count of how many need to be updated:

{
  "count": true,
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02"
}

This returns 190,691 results. At a max size of 250 per call, that requires 763 MLS Search API calls — roughly 76.3 seconds (1.27 mins) at ~100ms per call.


Pagination flow:

{
  "size": 250,
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02"
}
{
  "size": 250,
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02",
  "resultIndex": 250
}
{
  "size": 250,
  "modification_timestamp_min": "2025-04-01",
  "modification_timestamp_max": "2025-04-02",
  "resultIndex": 500
}

Continue paging using resultIndex until all results are retrieved.