Apartments.com API: Search apartments
Searches 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.
Unofficial. Not affiliated with or endorsed by Apartments.com.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Page optional
page Search results page number. For example, 2.
1
Whole number 1 or more. Default
1.- Pets optional
pets Pet policy to search for. For example, dog_friendly.
dog_friendly
One of
any,dog_friendly,cat_friendly. Defaultany.- Location, required
location City and state, neighborhood, or ZIP code. For example, Austin, TX.
Austin, TX
2 characters or more.
- Max Rent optional
max_rent Highest monthly rent in US dollars. For example, 1800.
1700
Whole number 1 or more.
- Min Beds optional
min_beds Minimum bedrooms; 0 includes studios. For example, 2.
2
Whole number 0 or more.
- Max Results optional
max_results Maximum properties to return from this page. For example, 25.
25
Whole number from 1 to 40. Default
25.
Input as JSON
{ "page": 1, "pets": "dog_friendly", "location": "Austin, TX", "max_rent": 1700, "min_beds": 2, "max_results": 25}Output
{ "properties": [ { "listing_id": "gxn64yz", "photo_link": "https://images1.apartments.com/i2/o0UZLB_Q8uZd7qMqz4_285vLYZkSMOpVuarO3k9LgCs/117/barton-creek-landing-austin-tx-building-photo.jpg?p=1" , "full_address": "2800 Bartons Bluff Ln, Austin, TX 78746", "phone_number": "(877) 565-8926", "beds_as_shown": "2 Beds", "currency_code": "USD", "key_amenities": [ "Dogs Allowed", "Fitness Center", "Pool" ], "property_link": "https://www.apartments.com/barton-creek-landing-austin-tx/gxn64yz/" , "property_name": "Barton Creek Landing", "rent_as_shown": "2 Beds $1,535+", "lowest_monthly_rent": 1630, "highest_monthly_rent": 1994, "availability_as_shown": null }, { "listing_id": "qre0qpw", "photo_link": "https://images1.apartments.com/i2/65gpn7YhojdQlK_vXi9Jvv5aEK6ItzLYmZf1VPC23KQ/117/stassney-at-soco-austin-tx-building-photo.jpg?p=1" , "full_address": "1800 E Stassney Ln, Austin, TX 78744", "phone_number": "(737) 377-3893", "beds_as_shown": "2 Beds", "currency_code": "USD", "key_amenities": [ "Dogs Allowed", "Pool", "Maintenance on site" ], "property_link": "https://www.apartments.com/stassney-at-soco-austin-tx/qre0qpw/" , "property_name": "Stassney at SoCo", "rent_as_shown": "2 Beds $1,124+", "lowest_monthly_rent": 1245, "highest_monthly_rent": 1527, "availability_as_shown": null }, { "listing_id": "4v6169l", "photo_link": "https://images1.apartments.com/i2/RXhEonjp-N4ih0r8TMTR0CjfkFPiGbilAnt8AKvti2Y/117/ellwood-at-lake-travis-austin-tx-aerial.jpg?p=1" , "full_address": "7655 N Ranch Road 620, Austin, TX 78726", "phone_number": "(737) 237-9124", "beds_as_shown": "2 Beds", "currency_code": "USD", "key_amenities": [ "Dogs Allowed", "Fitness Center", "Pool" ], "property_link": "https://www.apartments.com/ellwood-at-lake-travis-austin-tx/4v6169l/" , "property_name": "Ellwood at Lake Travis", "rent_as_shown": "2 Beds $1,249+", "lowest_monthly_rent": 1409, "highest_monthly_rent": 2378, "availability_as_shown": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"apartments.com/search_apartments","input":{"page":1,"pets":"dog_friendly","location":"Austin, TX","max_rent":1700,"min_beds":2,"max_results":25}}' # 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": "apartments.com/search_apartments" , "input": { "page": 1, "pets": "dog_friendly", "location": "Austin, TX", "max_rent": 1700, "min_beds": 2, "max_results": 25 }})# 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": "apartments.com/search_apartments" , "input": { "page": 1, "pets": "dog_friendly", "location": "Austin, TX", "max_rent": 1700, "min_beds": 2, "max_results": 25 } }), 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 apartments.com/search_apartments# with {"page":1,"pets":"dog_friendly","location":"Austin, TX","max_rent":1700,"min_beds":2,"max_results":25}"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": { "page": { "type": "integer", "default": 1, "minimum": 1, "description": "Search results page number. For example, 2." }, "pets": { "enum": [ "any", "dog_friendly", "cat_friendly" ], "type": "string", "default": "any", "description": "Pet policy to search for. For example, dog_friendly." }, "location": { "type": "string", "minLength": 2, "description": "City and state, neighborhood, or ZIP code. For example, Austin, TX." }, "max_rent": { "type": "integer", "minimum": 1, "description": "Highest monthly rent in US dollars. For example, 1800." }, "min_beds": { "type": "integer", "minimum": 0, "description": "Minimum bedrooms; 0 includes studios. For example, 2." }, "max_results": { "type": "integer", "default": 25, "maximum": 40, "minimum": 1, "description": "Maximum properties to return from this page. For example, 25." } }}Output schema
{ "type": "object", "required": [ "properties" ], "properties": { "properties": { "type": "array", "items": { "type": "object", "required": [ "property_name", "full_address", "lowest_monthly_rent", "highest_monthly_rent", "currency_code", "rent_as_shown", "beds_as_shown", "availability_as_shown", "key_amenities", "phone_number", "photo_link", "property_link", "listing_id" ], "properties": { "listing_id": { "type": [ "string", "null" ], "x-fous-developer": true }, "photo_link": { "type": [ "string", "null" ] }, "full_address": { "type": [ "string", "null" ] }, "phone_number": { "type": [ "string", "null" ] }, "beds_as_shown": { "type": [ "string", "null" ] }, "currency_code": { "type": "string" }, "key_amenities": { "type": "array", "items": { "type": "string" } }, "property_link": { "type": "string" }, "property_name": { "type": "string" }, "rent_as_shown": { "type": [ "string", "null" ] }, "lowest_monthly_rent": { "type": [ "number", "null" ] }, "highest_monthly_rent": { "type": [ "number", "null" ] }, "availability_as_shown": { "type": [ "string", "null" ] } }, "additionalProperties": false }, "description": "Properties in the order shown by Apartments.com." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
apartments.com/search_apartments- Returns
- property name, address, rent range, beds, amenities, phone, 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 apartments.com/search_apartments with the inputs above.
Ask your agent
- Find 2-bedroom apartments in Denver, CO under $2,200 a month that allow dogs
- Show me page 2 of Apartments.com rental listings for ZIP 60614 with a max rent of $1,800
- Any cat-friendly studios or larger in Capitol Hill, Seattle for $1,600 or less? Give me names, rent ranges, and phone numbers
- I need up to 10 rental listings in Raleigh, NC with at least 3 bedrooms, including amenities and links
- Search Apartments.com for dog-friendly 1-bedroom places in Austin, TX under $1,500 and list addresses and photos
See more
Searches 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 Zumper apartments and homes for rent in a city or neighborhood. You can filter by price, bedrooms, pet policy and property type.
zumper.com/search_rentalsSearches 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_homesSearches 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_homesGets 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 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 public Airbnb homes for a destination and travel dates. Each stay comes with its price, rating, room details and listing link. Prices are the displayed trip totals, including fees.
airbnb.com/search_stays