# SimplyRETS API

> SimplyRETS API on Apizie: 4 endpoints (The SimplyRETS OpenHouses API, Single OpenHouse Endpoint, The SimplyRETS Listings API, Single Listing Endpoint) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/open-data:simplyrets/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `open-data:simplyrets`
- Category: Open Data
- Status: byok
- Source: https://simplyrets.com
- Page: https://apizie.tech/api/open-data/simplyrets
- OpenAPI: https://apizie.tech/api/open-data/simplyrets/openapi.json

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…

## Endpoints

### The SimplyRETS OpenHouses API
`GET https://apizie.tech/v1/open-data:simplyrets/get-openhouses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | no | Request listings by a specific property type. This defaults to Residential, and you can only specify one type in a single query. |
| listingId | string | no | Request openhouses for a specific `listingId`. |
| cities | array | no | Filter the openhouses returned by a list of valid cities. The `cities` query parameter is case-insensitive. The list of `cities` provided… |
| brokers | array | no | Filter the listings returned by brokerage with a Broker ID. You can specific multiple broker parameters. Note, the Broker ID is provided… |
| agent | string | no | Filter the listings returned by an agent ID. Note, the Agent ID is provided by your MLS. |
| minprice | integer | no | Filter listings by a minimum price. |
| startdate | string | no | Scheduled date and time of the open house showing |
| offset | integer | no | Increase the offset parameter by the limit to go to the next "page" of listings. Also take a look at the Link HTTP Header for pre-built… |
| lastId | integer | no | Used as a cursor for pagination. |
| limit | integer | no | Set the number of listings to return in the response. This defaults to 20 listings, and can be a maximum of 500. To paginate through to… |
| sort | string | no | Sort the response by a specific field. Values starting with a minus (-) denote descending order, while the others are ascending. |
| include | array | no | Include a extra fields which are not in the default response body - 'association' includes additional HOA data - 'agreement' information… |

### Single OpenHouse Endpoint
`GET https://apizie.tech/v1/open-data:simplyrets/get-openhouses-open-house-key` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| openHouseKey | integer | yes | A unique OpenHouse identification key |
| include | array | no | Include a extra fields which are not in the default response body - 'association' includes additional HOA data - 'agreement' information… |

### The SimplyRETS Listings API
`GET https://apizie.tech/v1/open-data:simplyrets/get-properties` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | no | A textual keyword search. This parameter will search the following fields, when available: - listingId (This does _not_ search the `mlsId`… |
| status | array | no | Request listings by a specific status. This parameter defaults to active and you can specify multiple statuses in a single query. Listing… |
| type | array | no | Request listings by a specific property type. This defaults to Residential and Rental. You can specify multiple property types in a single… |
| subtype | array | no | Request listings by a specific property sub type. *NOTE* not all sub type filters are available for all vendors. |
| agent | string | no | Filter the listings returned by an agent ID. Note, the Agent ID is provided by your MLS. The co-listing agent is not included in this… |
| brokers | array | no | Filter the listings returned by brokerage with a Broker ID. For some MLS areas, this is the ListOfficeId (Listing Office ID). You can… |
| minprice | integer | no | Filter listings by a minimum price. |
| maxprice | integer | no | Filter listings by a maximum price |
| minarea | integer | no | Filter listings by a minimum area size in Sq Ft. |
| maxarea | integer | no | Filter listings by a maximum area size in Sq Ft. |
| minbaths | integer | no | Filter listings by a minimum number of bathrooms. |
| maxbaths | integer | no | Filter listings by a maximum number of bathrooms. |
| minbeds | integer | no | Filter listings by a minimum number of bedrooms. |
| maxbeds | integer | no | Filter listings by a maximum number of bedrooms. |
| maxdom | integer | no | Filter listings by a maximum number of days on market. _Note that your MLS must provide Days on Market data._ |
| minyear | integer | no | Filter listings by a setting a minimum year built. |
| limit | integer | no | Set the number of listings to return in the response. This defaults to 20 listings, and can be a maximum of 500. To paginate through to… |
| offset | integer | no | Increase the offset parameter by the limit to go to the next "page" of listings. Also take a look at the Link HTTP Header for pre-built… |
| lastId | integer | no | Used as a cursor for pagination. When using `lastId`, the `sort` parameter will not work. |
| vendor | string | no | Used to specify the vendor (MLS) to search from. This parameter is required on multi-MLS apps, and you can only query one vendor at a… |
| postalCodes | array | no | Filter the listings returned by postal codes / zip code. You can specify multiple. |
| features | array | no | Filter the listings by specific interior features. You can filter by multiple. For example, to filter trial listings by multiple features… |
| water | string | no | Query water/waterfront listings only. Specify `true` to filter waterfront listings. If you specify `water=true`, all listings with any… |
| neighborhoods | array | no | Filter the listings returned by specific neighborhoods and subdivisions. You can specify multiple `neighborhoods` by using the query… |
| cities | array | no | Filter the listings returned by specific cities. You can specify multiple `cities` query parameters. The `cities` query parameter is… |
| counties | array | no | Filter the listings returned by specific counties. You can specify multiple `counties` parameters. The `counties` query parameter is… |
| points | array | no | Return listings that are within a set of latitude longitude coordinates. For example; ``` 29.723837,-95.69778 29.938275,-95.69778… |
| include | array | no | Include a extra fields which are not in the default response body - 'association' includes additional HOA data - 'agreement' information… |
| sort | string | no | Sort the response by a specific field. Values starting with a minus (-) denote descending order, while the others are ascending. |
| count | integer | no | When set to `false`, The `X-Total-Count` header will not be returned Counting the listings can contribute to slower API calls due to the… |

### Single Listing Endpoint
`GET https://apizie.tech/v1/open-data:simplyrets/get-properties-mls-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| mlsId | integer | yes | The `mlsId` field is a unique identifier which is specific to the SimplyRETS API only. This field is different from the `listingId` field… |
| include | array | no | Include a extra fields which are not in the default response body - 'association' includes additional HOA data - 'agreement' information… |

## Example
```
curl "https://apizie.tech/v1/open-data:simplyrets/get-openhouses" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the SimplyRETS API?
Create a free Apizie key, then send GET https://apizie.tech/v1/open-data:simplyrets/get-openhouses with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the SimplyRETS API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. SimplyRETS itself also needs your own key from simplyrets.com.

### Can AI agents use the SimplyRETS API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key open-data:simplyrets.

### What is the status of the SimplyRETS API?
Needs your own provider key (bring your own key)
