SimplyRETS
simplyrets · Company
The SimplyRETS API is an exciting step towards making it easier for developers and real estate agents to build something awesome with real estate data! The documentation below makes live requests to our API using the trial data. To get set up with the API using live MLS data, you must have RETS credentials from your MLS, which you can then use to create an app with SimplyRETS. For more information on that process, please see our [FAQ](https://simplyrets.com/faq), [Getting Started](https://simpl
Authentication
Sample Requests
This is the main endpoint for accessing openhouses.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses?sort=listprice&type=residential&agent=example&limit=10&cities=example&lastId=1&offset=0&brokers=example&include=example&minprice=1&listingId=example&startdate=example"
import requests
params = {
"sort": "listprice",
"type": "residential",
"agent": "example",
"limit": "10",
"cities": "example",
"lastId": "1",
"offset": "0",
"brokers": "example",
"include": "example",
"minprice": "1",
"listingId": "example",
"startdate": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses');
url.searchParams.set('sort', 'listprice');
url.searchParams.set('type', 'residential');
url.searchParams.set('agent', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('cities', 'example');
url.searchParams.set('lastId', '1');
url.searchParams.set('offset', '0');
url.searchParams.set('brokers', 'example');
url.searchParams.set('include', 'example');
url.searchParams.set('minprice', '1');
url.searchParams.set('listingId', 'example');
url.searchParams.set('startdate', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses")
q := baseURL.Query()
q.Set("sort", "listprice")
q.Set("type", "residential")
q.Set("agent", "example")
q.Set("limit", "10")
q.Set("cities", "example")
q.Set("lastId", "1")
q.Set("offset", "0")
q.Set("brokers", "example")
q.Set("include", "example")
q.Set("minprice", "1")
q.Set("listingId", "example")
q.Set("startdate", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses")
uri.query = URI.encode_www_form({
"sort" => "listprice",
"type" => "residential",
"agent" => "example",
"limit" => "10",
"cities" => "example",
"lastId" => "1",
"offset" => "0",
"brokers" => "example",
"include" => "example",
"minprice" => "1",
"listingId" => "example",
"startdate" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses?" . http_build_query([
"sort" => "listprice",
"type" => "residential",
"agent" => "example",
"limit" => "10",
"cities" => "example",
"lastId" => "1",
"offset" => "0",
"brokers" => "example",
"include" => "example",
"minprice" => "1",
"listingId" => "example",
"startdate" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));This is the main endpoint for accessing your properties. View all of the available query parameters and make requests below! The API uses Basic Authentication, which most HTTP libraries will handle for you. To use the test data (which is what this pages uses), you can use the api key `simplyrets` an
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties?q=test&sort=listprice&type=residential&agent=example&count=10&limit=10&water=example&cities=example&lastId=1&maxdom=1&offset=0&points=example&status=Active&vendor=example&brokers=example&include=association&maxarea=1&maxbeds=1&minarea=1&minbeds=1&minyear=1&subtype=apartment&counties=example&features=example&maxbaths=1&maxprice=1&minbaths=1&minprice=1&postalCodes=example&neighborhoods=example"
import requests
params = {
"q": "test",
"sort": "listprice",
"type": "residential",
"agent": "example",
"count": "10",
"limit": "10",
"water": "example",
"cities": "example",
"lastId": "1",
"maxdom": "1",
"offset": "0",
"points": "example",
"status": "Active",
"vendor": "example",
"brokers": "example",
"include": "association",
"maxarea": "1",
"maxbeds": "1",
"minarea": "1",
"minbeds": "1",
"minyear": "1",
"subtype": "apartment",
"counties": "example",
"features": "example",
"maxbaths": "1",
"maxprice": "1",
"minbaths": "1",
"minprice": "1",
"postalCodes": "example",
"neighborhoods": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties');
url.searchParams.set('q', 'test');
url.searchParams.set('sort', 'listprice');
url.searchParams.set('type', 'residential');
url.searchParams.set('agent', 'example');
url.searchParams.set('count', '10');
url.searchParams.set('limit', '10');
url.searchParams.set('water', 'example');
url.searchParams.set('cities', 'example');
url.searchParams.set('lastId', '1');
url.searchParams.set('maxdom', '1');
url.searchParams.set('offset', '0');
url.searchParams.set('points', 'example');
url.searchParams.set('status', 'Active');
url.searchParams.set('vendor', 'example');
url.searchParams.set('brokers', 'example');
url.searchParams.set('include', 'association');
url.searchParams.set('maxarea', '1');
url.searchParams.set('maxbeds', '1');
url.searchParams.set('minarea', '1');
url.searchParams.set('minbeds', '1');
url.searchParams.set('minyear', '1');
url.searchParams.set('subtype', 'apartment');
url.searchParams.set('counties', 'example');
url.searchParams.set('features', 'example');
url.searchParams.set('maxbaths', '1');
url.searchParams.set('maxprice', '1');
url.searchParams.set('minbaths', '1');
url.searchParams.set('minprice', '1');
url.searchParams.set('postalCodes', 'example');
url.searchParams.set('neighborhoods', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties")
q := baseURL.Query()
q.Set("q", "test")
q.Set("sort", "listprice")
q.Set("type", "residential")
q.Set("agent", "example")
q.Set("count", "10")
q.Set("limit", "10")
q.Set("water", "example")
q.Set("cities", "example")
q.Set("lastId", "1")
q.Set("maxdom", "1")
q.Set("offset", "0")
q.Set("points", "example")
q.Set("status", "Active")
q.Set("vendor", "example")
q.Set("brokers", "example")
q.Set("include", "association")
q.Set("maxarea", "1")
q.Set("maxbeds", "1")
q.Set("minarea", "1")
q.Set("minbeds", "1")
q.Set("minyear", "1")
q.Set("subtype", "apartment")
q.Set("counties", "example")
q.Set("features", "example")
q.Set("maxbaths", "1")
q.Set("maxprice", "1")
q.Set("minbaths", "1")
q.Set("minprice", "1")
q.Set("postalCodes", "example")
q.Set("neighborhoods", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties")
uri.query = URI.encode_www_form({
"q" => "test",
"sort" => "listprice",
"type" => "residential",
"agent" => "example",
"count" => "10",
"limit" => "10",
"water" => "example",
"cities" => "example",
"lastId" => "1",
"maxdom" => "1",
"offset" => "0",
"points" => "example",
"status" => "Active",
"vendor" => "example",
"brokers" => "example",
"include" => "association",
"maxarea" => "1",
"maxbeds" => "1",
"minarea" => "1",
"minbeds" => "1",
"minyear" => "1",
"subtype" => "apartment",
"counties" => "example",
"features" => "example",
"maxbaths" => "1",
"maxprice" => "1",
"minbaths" => "1",
"minprice" => "1",
"postalCodes" => "example",
"neighborhoods" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/properties?" . http_build_query([
"q" => "test",
"sort" => "listprice",
"type" => "residential",
"agent" => "example",
"count" => "10",
"limit" => "10",
"water" => "example",
"cities" => "example",
"lastId" => "1",
"maxdom" => "1",
"offset" => "0",
"points" => "example",
"status" => "Active",
"vendor" => "example",
"brokers" => "example",
"include" => "association",
"maxarea" => "1",
"maxbeds" => "1",
"minarea" => "1",
"minbeds" => "1",
"minyear" => "1",
"subtype" => "apartment",
"counties" => "example",
"features" => "example",
"maxbaths" => "1",
"maxprice" => "1",
"minbaths" => "1",
"minprice" => "1",
"postalCodes" => "example",
"neighborhoods" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Use this endpoint for accessing a single OpenHouse.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}?include=example"import requests
params = {
"include": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}');
url.searchParams.set('include', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}")
q := baseURL.Query()
q.Set("include", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}")
uri.query = URI.encode_www_form({
"include" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/simplyrets.com/1.0.0/openhouses/{openHouseKey}?" . http_build_query([
"include" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with SimplyRETS?
SimplyRETS is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. SimplyRETS is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?