Repliers API alternative: property data with no MLS membership needed

Photo of Alex Wilkinson
Alex Wilkinson
CEO of Houski
2026-11-13

Repliers and Houski both serve property data through an API, but they are built for different customers. Developers who search for a Repliers API alternative are often building something that is not a brokerage website: an underwriting tool, a market report, a contractor lead list, an investment screen. This post describes what Repliers offers, what Houski offers, and how to tell which one fits your project.

This comparison reflects each company's public pages as of November 2026.

What Repliers offers

Repliers provides an API for Multiple Listing Service (MLS) listing data. Its public pages describe coverage of MLS boards in the United States and Canada, with features such as listing search and filtering, listing photos, property history and property value estimates.

Because the data comes from MLS systems, access follows MLS rules. Repliers' pages say that a data agreement with your MLS is required, and that Repliers handles the compliance process and contacts the MLS on your behalf. Its help pages say that real estate brokerages and the licensed professionals who work in them can use the data for their own business, and that developers and vendors can use it when real estate professionals have hired them to build their technology, with approval from the MLS.

If you work in or for a brokerage and need MLS listings on a website or in an application, Repliers is built for that.

What Houski offers

Houski is a different kind of product. It does not serve MLS listings, and it needs no license or MLS membership. Houski's property data API describes the properties themselves: more than 220 million of them, with more than 450 fields each, built from public, government and crowdsourced data sources, with data updated daily.

Coverage spans sixteen countries under one schema: Canada, the United States, Great Britain, France, Spain, the Netherlands, Poland, Czechia, Austria, Switzerland, Norway, Finland, Estonia, Latvia, Slovenia and South Korea. Money comes back in each country's own currency.

The data includes nearly every property, whether or not it is on the market. Values that no record states are worked out by Houski and labelled Inferred.

Self-serve access

You create an account, get a key and send requests. There is no application to a listing board and no approval step. Insurers, lenders, government teams, proptech builders, analysts, investors and contractors all use the same access.

The terms of service let you display retrieved data to end users inside your own product and cache responses.

This live request is a fuzzy address lookup, and the answer on this page comes from the API each time the page loads:

API request
TypeScript code
const houski_data = async (): Promise<SearchResponse> => {

    // You must copy the SearchResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/search');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('max_results', '5');
    url.searchParams.set('query', '123+main+st+calgary');
    url.searchParams.set('select', 'address,property_type,estimate_list_price,bedroom,bathroom_half,bathroom_full');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: SearchResponse = await houski_data();

// Log the response
console.log(data);
})();
API response
JSON
{
  "cache_hit": true,
  "cost_cents": 2.1499999,
  "data": [
    {
      "address": "123 Main Street",
      "bathroom_full": 1,
      "bathroom_half": 0,
      "bedroom": 3,
      "estimate_list_price": 123919,
      "property_id": "aafadb43ded908a3",
      "property_type": "Townhouse"
    },
    {
      "address": "123 Main Street",
      "bathroom_full": 1,
      "bathroom_half": 0,
      "bedroom": 3,
      "estimate_list_price": 234224,
      "property_id": "ae06f5914a609e6d",
      "property_type": "House"
    },
    {
      "address": "123 Midcrest Crescent SE",
      "bathroom_full": 2,
      "bathroom_half": 0,
      "bedroom": 3,
      "estimate_list_price": 585563,
      "property_id": "d5f6e3fa9a720e57",
      "property_type": "House"
    },
    {
      "address": "123 Masters Street SE",
      "bathroom_full": 3,
      "bathroom_half": 1,
      "bedroom": 4,
      "estimate_list_price": 676479,
      "property_id": "4a7f48fcb67f69a4",
      "property_type": "House"
    },
    {
      "address": "123 Marquis Green SE",
      "bathroom_full": 4,
      "bathroom_half": 1,
      "bedroom": 3,
      "estimate_list_price": 770055,
      "property_id": "8708c4475c5f506c",
      "property_type": "House"
    }
  ],
  "error": "",
  "match_meta": [
    {
      "match_value": 0.7,
      "property_id": "aafadb43ded908a3"
    },
    {
      "match_value": 0.7,
      "property_id": "ae06f5914a609e6d"
    },
    {
      "match_value": 0.7,
      "property_id": "d5f6e3fa9a720e57"
    },
    {
      "match_value": 0.7,
      "property_id": "4a7f48fcb67f69a4"
    },
    {
      "match_value": 0.7,
      "property_id": "8708c4475c5f506c"
    }
  ],
  "price_quote": false,
  "result_total": 5,
  "time_ms": 58
}

Listing history, permits and estimated values

Houski attaches history rows to a property with the expand parameter: listing history, rental listing history, permits and assessments. This live request returns Calgary properties that have listing history, with their estimated list price:

API request
TypeScript code
const houski_data = async (): Promise<PropertiesResponse> => {

    // You must copy the PropertiesResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/properties');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('city', 'calgary');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('expand', 'listings');
    url.searchParams.set('filter_expand_match', 'all');
    url.searchParams.set('page', '1');
    url.searchParams.set('province_abbreviation', 'ab');
    url.searchParams.set('results_per_page', '3');
    url.searchParams.set('select', 'address,estimate_list_price');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: PropertiesResponse = await houski_data();

// Log the response
console.log(data);
})();
API response
JSON
{
  "cache_hit": true,
  "cost_cents": 1.1600001,
  "data": [
    {
      "address": "24 Rowley Common NW",
      "estimate_list_price": 843714,
      "listings": [
        {
          "expand_estimate_list_price": 779000,
          "expand_listing_date": "2022-08-17",
          "expand_listing_event": "Listed",
          "property_id": "12e3ffac04ec3562"
        },
        {
          "expand_estimate_list_price": 779000,
          "expand_listing_date": "2022-09-28",
          "expand_listing_event": "Unlisted",
          "property_id": "12e3ffac04ec3562"
        }
      ],
      "property_id": "12e3ffac04ec3562"
    },
    {
      "address": "370 Rowley Way NW",
      "estimate_list_price": 1652197,
      "listings": [
        {
          "expand_estimate_list_price": 1749900,
          "expand_listing_date": "2025-04-14",
          "expand_listing_event": "Listed",
          "property_id": "132a75dd38341a25"
        },
        {
          "expand_estimate_list_price": 1699900,
          "expand_listing_date": "2025-04-29",
          "expand_listing_event": "Price decrease",
          "property_id": "132a75dd38341a25"
        },
        {
          "expand_estimate_list_price": 1649900,
          "expand_listing_date": "2025-06-16",
          "expand_listing_event": "Price decrease",
          "property_id": "132a75dd38341a25"
        },
        {
          "expand_estimate_list_price": 1649900,
          "expand_listing_date": "2025-06-24",
          "expand_listing_event": "Unlisted",
          "property_id": "132a75dd38341a25"
        }
      ],
      "property_id": "132a75dd38341a25"
    },
    {
      "address": "406 Crimson Ridge Place NW",
      "estimate_list_price": 1603968,
      "listings": [
        {
          "expand_estimate_list_price": 1700000,
          "expand_listing_date": "2026-04-09",
          "expand_listing_event": "Listed",
          "property_id": "15f1300ff5b78de"
        },
        {
          "expand_estimate_list_price": 1700000,
          "expand_listing_date": "2026-06-02",
          "expand_listing_event": "Unlisted",
          "property_id": "15f1300ff5b78de"
        }
      ],
      "property_id": "15f1300ff5b78de"
    }
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 35788
  },
  "price_quote": false,
  "result_total": 107363,
  "time_ms": 91,
  "ui_info": {
    "city": "Calgary",
    "city_id": "6ec95b53075d062c",
    "city_link": "ca/ab/calgary",
    "city_slug": "calgary",
    "country": "Canada",
    "country_abbreviation": "CA",
    "country_abbreviation_id": "9ace2b6431b7f1be",
    "country_abbreviation_link": "ca",
    "country_slug": "canada",
    "province": "Alberta",
    "province_abbreviation": "AB",
    "province_abbreviation_id": "aae1f05a0f89d2c7",
    "province_abbreviation_link": "ca/ab",
    "province_slug": "alberta"
  }
}

Permit rows carry the application date, the type, the content and the value of each permit, and you can filter on them. A request for Calgary properties with a roofing permit since the start of 2024 looks like this:

bash
curl "https://api.houski.ca/properties?api_key=$HOUSKI_API_KEY&country_abbreviation=ca&province_abbreviation=ab&city=calgary&expand=permits&expand_permit_application_date_gte=2024-01-01&expand_permit_content_regex=(?i)roof&filter_expand_match=all&select=address,construction_year,roof_material&exclude=inferred"

Beside the history rows, each property has:

  • An estimated sale price, an estimated list price and an estimated monthly rent.
  • A modelled value history from January 2021 to today through the predict endpoint, and a full valuation of one home from the automated valuation model (AVM) endpoint.
  • Scores from 0 to 10 for walkability, transit, education, safety, flood and fire, where higher is always better.
  • Building facts such as construction year, interior area, roof material and zoning.

Pay for the values returned

Billing is on the values returned, never on how much was searched. Most fields cost $0.001 per value returned, and a field with no value for a home is not billed. Pay as you go has a $99 monthly minimum in United States dollars, and every account sets its own maximum monthly spend. Adding price_quote=true to any request returns its cost for free. See the pricing page.

Tools for developers and AI assistants

Houski runs a Model Context Protocol server at https://www.houski.ca/mcp, so an AI assistant can look up fields, read the documentation and request data. The examples repository has runnable code in Python, JavaScript, TypeScript, Rust and curl.

How to choose

  • If you are a member of a listing board, or you build for one, and you need MLS listings with their photos, Repliers is built for that.
  • If you are not a member of a listing board and you need data about properties, Houski needs no membership and no approval.
  • If you need properties that are not on the market, with estimated values, permits and scores, Houski covers nearly every property in its sixteen countries.
  • If you need data outside the United States and Canada, Houski uses one schema everywhere.

Some products use both kinds of data: MLS listings for what is on the market today, and a property data API for everything else.

Read the quick start guide to send your first request.