Zumper API: Search rentals
Searches Zumper apartments and homes for rent in a city or neighborhood. You can filter by price, bedrooms, pet policy and property type.
Unofficial. Not affiliated with or endorsed by Zumper.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Pets optional
pets Pet policy to include. Example: dogs_allowed.
dogs_allowed
One of
any,dogs_allowed,cats_allowed. Defaultany.- Location, required
location City and state or province, or a neighborhood and city. Example: Chicago, IL.
Chicago, IL
2 characters or more.
- Max Rent optional
max_rent Highest monthly rent in USD, or CAD for a Canadian location. Example: 2500.
2500
Number 0 or more.
- Min Beds optional
min_beds Minimum bedrooms; 0 includes studios. Example: 2.
1
Whole number 0 or more. Default
0.- Max Results optional
max_results Most listings to return. Example: 20.
10
Whole number from 1 to 50. Default
20.- Property Type optional
property_type Kind of rental. Example: apartment.
apartment
One of
any,apartment,house,condo,room. Defaultany.
Input as JSON
{ "pets": "dogs_allowed", "location": "Chicago, IL", "max_rent": 2500, "min_beds": 1, "max_results": 10, "property_type": "apartment"}Output
{ "rentals": [ { "beds": "1–2", "name": "The Blackwood", "baths": "1–2", "address": "5200 S Blackstone Ave, Chicago, IL 60615", "currency": "USD", "photo_link": "https://img.zumpercdn.com/894277268/1280x960" , "square_feet": "450–900", "listing_link": "https://www.zumper.com/apartment-buildings/p16277/the-blackwood-hyde-park-chicago-il" , "monthly_rent": "$1,550–$1,995", "pets_allowed": "Cats and dogs allowed", "available_date": null, "zumper_listing_id": "64196674", "lowest_monthly_rent": 1550 }, { "beds": "1–2", "name": "Woodlawn Terrace", "baths": "1", "address": "4726 S Woodlawn Ave, Chicago, IL 60615", "currency": "USD", "photo_link": "https://img.zumpercdn.com/894278305/1280x960" , "square_feet": "565–793", "listing_link": "https://www.zumper.com/apartment-buildings/p14979/woodlawn-terrace-kenwood-chicago-il" , "monthly_rent": "$1,495–$1,799", "pets_allowed": "Cats and dogs allowed", "available_date": null, "zumper_listing_id": "64196808", "lowest_monthly_rent": 1495 }, { "beds": "1–2", "name": "Regents Park", "baths": "1–2", "address": "5035 S East End Ave, Chicago, IL 60615", "currency": "USD", "photo_link": "https://img.zumpercdn.com/894287412/1280x960" , "square_feet": "715–1,135", "listing_link": "https://www.zumper.com/apartment-buildings/p289649/regents-park-kenwood-chicago-il" , "monthly_rent": "$1,875–$2,899", "pets_allowed": "Cats and dogs allowed", "available_date": null, "zumper_listing_id": "64197552", "lowest_monthly_rent": 1875 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"zumper.com/search_rentals","input":{"pets":"dogs_allowed","location":"Chicago, IL","max_rent":2500,"min_beds":1,"max_results":10,"property_type":"apartment"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "zumper.com/search_rentals" , "input": { "pets": "dogs_allowed", "location": "Chicago, IL", "max_rent": 2500, "min_beds": 1, "max_results": 10, "property_type": "apartment" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "zumper.com/search_rentals" , "input": { "pets": "dogs_allowed", "location": "Chicago, IL", "max_rent": 2500, "min_beds": 1, "max_results": 10, "property_type": "apartment" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run zumper.com/search_rentals# with {"pets":"dogs_allowed","location":"Chicago, IL","max_rent":2500,"min_beds":1,"max_results":10,"property_type":"apartment"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "pets": { "enum": [ "any", "dogs_allowed", "cats_allowed" ], "type": "string", "default": "any", "description": "Pet policy to include. Example: dogs_allowed." }, "location": { "type": "string", "minLength": 2, "description": "City and state or province, or a neighborhood and city. Example: Chicago, IL." }, "max_rent": { "type": "number", "minimum": 0, "description": "Highest monthly rent in USD, or CAD for a Canadian location. Example: 2500." }, "min_beds": { "type": "integer", "default": 0, "minimum": 0, "description": "Minimum bedrooms; 0 includes studios. Example: 2." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Most listings to return. Example: 20." }, "property_type": { "enum": [ "any", "apartment", "house", "condo", "room" ], "type": "string", "default": "any", "description": "Kind of rental. Example: apartment." } }}Output schema
{ "type": "object", "required": [ "rentals" ], "properties": { "rentals": { "type": "array", "items": { "type": "object", "properties": { "beds": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "baths": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "currency": { "type": "string" }, "photo_link": { "type": [ "string", "null" ] }, "square_feet": { "type": [ "string", "null" ] }, "listing_link": { "type": [ "string", "null" ] }, "monthly_rent": { "type": [ "string", "null" ] }, "pets_allowed": { "type": [ "string", "null" ] }, "available_date": { "type": [ "string", "null" ] }, "zumper_listing_id": { "type": [ "string", "null" ] }, "lowest_monthly_rent": { "type": [ "number", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
zumper.com/search_rentals- Returns
- name, address, rent, beds, baths, square feet, availability, pets, photo, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method zumper.com/search_rentals with the inputs above.
Ask your agent
- Find pet-friendly apartments for rent in Austin, TX under $1800 a month with at least 1 bedroom
- Show me houses for rent in Seattle, WA with 3 bedrooms and dogs allowed, max rent 3000
- I need condos in Toronto, ON under 2400 CAD with at least 2 beds, cats allowed
- Any studios or 1-bedroom places for rent in Brooklyn, NY under $2800, return up to 10 listings
- On zumper.com, look for rooms for rent in Denver, CO under $900 a month, pets any
See more
All Zumper methodsGets Zumper's current median monthly rents for studio through three-bedroom homes in a city, with monthly and yearly percentage changes. National rank is included only when the same-month U.S. national report ranks the city.
zumper.com/get_average_rentsSearches Zillow rentals in a city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and home-type filters. Listing details that Zillow does not show are null.
zillow.com/search_rentalsSearches Apartments.com rentals by city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and page filters. Rent and availability wording is returned when displayed; missing details are null.
apartments.com/search_apartmentsSearches Zoopla homes for sale or to rent in a UK town, area or postcode, with price, bedroom, property type and sort options. Prices are in GBP; rents are monthly.
zoopla.co.uk/search_propertiesSearches Zillow homes for sale in a city and state, neighborhood or ZIP code, with optional price, bedroom, bathroom and property type filters and sort order, from Zillow's public search pages (up to 100 listings).
zillow.com/search_homesSearches Realtor.com homes for sale, for rent, or recently sold in a city, neighborhood or ZIP code, with optional price, bedroom, bathroom and home type filters and sort order. Rentals with price ranges use the lowest advertised rent; withheld sold prices are blank.
realtor.com/search_homesSearches Homes.com homes for sale in a US city, neighborhood, or ZIP code, with optional price, bedroom, bathroom and home type filters. Returns listings in site order; days on market is null when not shown.
homes.com/search_homesLooks up Zillow housing market figures for a city and state or five-digit ZIP code: typical home value, one-year change, list and sale prices, inventory and listing activity.
zillow.com/get_housing_market