# Zillow Rental Listings

<p>Search rentals in a US city or ZIP code. Filter by monthly rent, bedrooms and amenities: pets, cats, large or small dogs, parking, air conditioning, furnished, short-term lease, outdoor space, utilities included, no pets, pool, instant tour and in-unit laundry.</p><h2>Two kinds of rows</h2><p>A row is either a single rental home (price, bedrooms, bathrooms, living area) or a building with several units. A building has <code>is_building</code> set to true, a <code>units</code> list with the starting price per unit type, and the ranges <code>price_min</code>, <code>price_max</code>, <code>bedrooms_min</code> and <code>bedrooms_max</code> (null when a unit text cannot be read).</p><h2>Filters are honoured</h2><p>Rows that break the rent or bedroom range are not returned. The total is what Zillow reports for the filters you set; a building counts once per unit, so the total can be higher than the rows you can page through. <code>filters_applied</code> lists the filters the page confirmed (the pet filter also confirms its cat and dog parts). Rows carry no amenity field, so this list is the proof that the site took your amenity filters. A page holds up to 41 rows. <code>max_page</code> is the number of pages the site reports (at most 20); a page above it answers 422 and costs nothing.</p><h2>ZIP code</h2><p>A ZIP code works without filters. With rent, bedroom or amenity filters, use a city and state: a filtered ZIP search answers 422. A ZIP code with no area of its own (a P.O. box ZIP) also answers 422. Every row lies in the place you asked for.</p><p>Costs 1 credit per request.</p>

- **Documentation:** [https://scrappa.co/docs/zillow-api/zillow_rentals](https://scrappa.co/docs/zillow-api/zillow_rentals)
- **API group:** Zillow API
- **Endpoint:** `GET https://scrappa.co/api/zillow/rentals`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `location` | string | Yes | City and state such as "Seattle, WA", or a five digit ZIP code. |
| `page` | integer | No | Page number, 1 to max_page (at most 20). |
| `min_rent` | integer | No | Lowest monthly rent in USD. |
| `max_rent` | integer | No | Highest monthly rent in USD. |
| `min_beds` | integer | No | Fewest bedrooms. 0 includes studios. |
| `max_beds` | integer | No | Most bedrooms. |
| `pets_allowed` | boolean | No | Only rentals that allow pets. |
| `cats_allowed` | boolean | No | Only rentals that allow cats. |
| `large_dogs_allowed` | boolean | No | Only rentals that allow large dogs. |
| `small_dogs_allowed` | boolean | No | Only rentals that allow small dogs. |
| `parking` | boolean | No | Only rentals with parking. |
| `air_conditioning` | boolean | No | Only rentals with air conditioning. |
| `furnished` | boolean | No | Only furnished rentals. |
| `short_term_lease` | boolean | No | Only rentals with a short-term lease option. |
| `outdoor_space` | boolean | No | Only rentals with outdoor space. |
| `utilities_included` | boolean | No | Only rentals with utilities included. |
| `no_pets` | boolean | No | Only rentals that do not allow pets. |
| `pool` | boolean | No | Only rentals with a pool. |
| `instant_tour` | boolean | No | Only rentals with instant tours. |
| `in_unit_laundry` | boolean | No | Only rentals with laundry in the unit. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/zillow/rentals?location=Seattle%2C+WA&min_rent=1500&max_rent=2500&min_beds=2&in_unit_laundry=1"
```

## Example response

```json
{
    "data": {
        "location": "Seattle, WA",
        "page": 1,
        "max_page": 12,
        "page_size": 41,
        "total_results": 493,
        "count": 41,
        "filters_applied": {
            "min_rent": 1500,
            "max_rent": 2500,
            "min_beds": 2,
            "in_unit_laundry": true
        },
        "rentals": [
            {
                "id": "464483890",
                "zpid": 464483890,
                "is_building": false,
                "price": 2595,
                "price_text": "$2,595/mo",
                "bedrooms": 1,
                "bathrooms": 1,
                "living_area": 780
            }
        ]
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 400 | The request validation failed | A query parameter is missing, malformed, or outside its documented range. This is the only Zillow response that carries no error code: the body has a message and a field list and nothing else, so match it on the 400 status. |
| 422 | No research dataset matches that family and geography | The requested research file does not exist for the combination given. |
| 422 | More than one research dataset matches | The family, geography and variant given do not identify a single research file. |
| 422 | No accuracy figures are published for that region | The named state or metropolitan area publishes no estimate-accuracy data. |
| 422 | The upstream rejected the request | Zillow answered with a deterministic 4xx. |
| 422 | The building returned does not match the requested address | The decoded building token resolved to a building at a different address than the slug names. |
| 503 | The listing source answered with a block or rate-limit page | The request reached the source, but what came back was a challenge or rate-limit page rather than the data. |
| 503 | The listing source returned a server error | The request was served and answered with a 5xx. |
| 503 | The listing source did not answer in time | The request was sent and no answer came back before the deadline. |
| 503 | The request could not be sent | No approved exit could be reached, so the request never reached the listing source. |
| 503 | No approved exit is available | There was no usable approved exit to send the request through. |
| 503 | The upstream returned a document this integration cannot read | The publisher changed the shape of a response or served a document that is not the expected file. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
