Zumper San Francisco rental listings data
100 listings from one Listingrail API search, 2026-10-19. Mostly empty: area (0%), photos (0%), listed_at (0%).
Field coverage
What the rows contain
Sample rows
Quartile-priced rows; raw and empty fields left out.
[
{
"id": "62919542",
"url": "https://www.zumper.com/apartment-buildings/p726138/55-brosnan-st-mission-san-francisco-ca",
"source": "zumper",
"title": "55 Brosnan St",
"address": "55 Brosnan St, San Francisco, CA 94103",
"city": "San Francisco",
"region": "CA",
"postal_code": "94103",
"country": "US",
"lat": 37.768601,
"lng": -122.423483,
"price": 3475,
"currency": "USD",
"price_period": "month",
"beds": 1,
"baths": 1,
"property_type": "Apartment",
"agent": {
"company": "SkylinePMG, Inc."
}
},
{
"id": "16558930",
"url": "https://www.zumper.com/apartment-buildings/p210163/340-fremont-south-beach-san-francisco-ca",
"source": "zumper",
"title": "340 Fremont",
"address": "340 Fremont St, San Francisco, CA 94105",
"city": "San Francisco",
"region": "CA",
"postal_code": "94105",
"country": "US",
"lat": 37.78718,
"lng": -122.393232,
"price": 4497,
"currency": "USD",
"price_period": "month",
"beds": 0,
"baths": 1,
"property_type": "Apartment",
"agent": {
"name": "340 Fremont",
"company": "Equity Residential"
}
},
{
"id": "61999091",
"url": "https://www.zumper.com/apartment-buildings/p297047/312-baker-apartments-nopa-san-francisco-ca",
"source": "zumper",
"title": "312 Baker",
"address": "312 Baker St, San Francisco, CA 94117",
"city": "San Francisco",
"region": "CA",
"postal_code": "94117",
"country": "US",
"lat": 37.773976,
"lng": -122.440643,
"price": 5995,
"currency": "USD",
"price_period": "month",
"beds": 2,
"baths": 1,
"property_type": "Apartment",
"agent": {
"name": "312 Baker",
"company": "RentSFNow"
}
}
]Request
import os
import requests
r = requests.post(
"https://listingrail.com/v1/listings/search",
headers={"Authorization": f"Bearer {os.environ['LISTINGRAIL_KEY']}"},
json={"source":"zumper", "location":"San Francisco, CA", "limit":100},
timeout=300,
)
r.raise_for_status()
listings = r.json()["listings"]
print(len(listings), listings[0]["price"], listings[0]["address"])Price context
Upper quartile 70% above the lower ($3,466).
2 bed: 2.2× the studio median.