Apartments.com
US rental buildings with the asking rent per bed count, amenities, address, photos and the leasing phone.
/apartments/v1/search2 creditsRental buildings in a place. Give a `location` ('Austin, TX', '78704', 'Downtown Chicago'), or a `bounding_box`, or `latitude`+`longitude`+`radius_miles`. Each row is a BUILDING with one entry per bed count in `floor_plans` — that is how apartments.com publishes rent, and flattening it would lose the price signal. `total_units` is the source's own count of available UNITS in the box, which is a different measure from the number of buildings returned.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| location | optional | — | Where to search: a US city and state ('Austin, TX'), a ZIP code ('78704'), a neighbourhood ('Downtown Chicago') or a street address. Resolved to a map box before the search runs. Pass `bounding_box` or `latitude`+`longitude` instead if you already have coordinates. |
| bounding_box | optional | — | An explicit map box as 'south,west,north,east' (or an object with lower_right / upper_left). Skips the location lookup entirely. |
| latitude | optional | — | Centre latitude. Used with `longitude` and `radius_miles`. |
| longitude | optional | — | Centre longitude. Used with `latitude` and `radius_miles`. |
| radius_miles = 5 | optional | 0.25–50 | Half-height of the box drawn around `latitude`/`longitude`, in miles. |
| limit = 40 | optional | 1–200 | How many buildings to return. The source serves 40 per page, so a larger limit costs one upstream page per 40. |
| page = 1 | optional | 1–100 | Which page of results to start from. |
| sort = default | optional | default · rent_low_to_high · rent_high_to_low · newest · recently_updated · distance · 3d_tour · video | Result order. This is applied BY THE SOURCE — the page echoes it back — unlike the filters below, which this API applies to the rows. |
| min_rent | optional | 0– | Keep buildings whose rent range reaches this monthly rent in USD. Applied by this API to the returned rows. A building that publishes no rent ('Call for Rent') cannot be confirmed to match, so it is left out whenever a rent filter is set. |
| max_rent | optional | 0– | Keep buildings whose cheapest published rent is at or below this. Applied by this API to the returned rows. Buildings with no published rent are left out. |
| min_beds | optional | 0–6 | Keep buildings offering at least this many bedrooms (0 = studio). Applied by this API. |
| max_beds | optional | 0–6 | Keep buildings offering at most this many bedrooms. Applied by this API. |
| pets = false | optional | — | Keep only buildings whose amenity list mentions pets. The full pet policy is not published on this surface. |
| amenities | optional | — | Keep buildings whose amenity list contains all of these (case-insensitive substring match). Applied by this API to the short list the source publishes. |
| has_3d_tour = false | optional | — | Keep only buildings with a 3D tour. |
| has_video = false | optional | — | Keep only buildings with a video. |
| specials_only = false | optional | — | Keep only buildings advertising a move-in special (free months, discounts). |
/apartments/v1/property/detail1 creditOne building by its listing key or apartments.com URL: name, street address, city, state, coordinates, renter rating, the published rent range and bed range, the neighbourhood label and the main photo. The full floor-plan table, fee schedule and pet policy are NOT served on the open surface — see the API notes.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| property_id | required | — | The building's apartments.com listing key (7 characters, e.g. 'pdh91xs') or its full apartments.com URL. |
/apartments/v1/locationsfreeTurn a typed place name into the ids, coordinates and map box that `search` takes — and the number of units each place currently has. Cities, ZIP codes, neighbourhoods, counties and street addresses all come back, each tagged with its type.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | What the renter typed: a city, a ZIP code, a neighbourhood or a street address. |
| limit = 15 | optional | 1–15 | How many suggestions to return. |
curl -X POST https://api.reefapi.com/apartments/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"location":"Austin, TX","limit":40}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}