Discover/Cityofberkeley API
live

Cityofberkeley APIrentregistry.cityofberkeley.info

Access Berkeley, CA rent registry data via API. Search rental properties, look up unit-level rent limits, APN details, and registration stats.

Endpoint health
verified 1d ago
get_address_rent_info
get_registration_stats
get_property_details
search_properties
get_faqs
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the Cityofberkeley API?

This API exposes 5 endpoints covering the City of Berkeley's official Rent Registry, returning unit-level rent data, APN lookups, and registration statistics. The get_property_details endpoint retrieves every registered unit for a parcel — including regulation type, current rent, and maximum allowed rent — directly from Berkeley's municipal housing records.

Try it
Page number for pagination
Number of results per page
Search keyword (address, street name, or APN number)
api.parse.bot/scraper/156c75b8-b6e3-4e61-8db8-f264b8efc161/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X POST 'https://api.parse.bot/scraper/156c75b8-b6e3-4e61-8db8-f264b8efc161/search_properties' \
  -H 'X-API-Key: $PARSE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "page": "1",
  "limit": "5",
  "query": "University Ave"
}'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace rentregistry-cityofberkeley-info-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Berkeley Rent Registry — search properties, inspect units, check stats."""
from parse_apis.berkeley_rent_registry_api import (
    BerkeleyRentRegistry,
    PropertyNotFound,
)

client = BerkeleyRentRegistry()

# Search for properties on a street — limit caps total items fetched.
for summary in client.propertysummaries.search(query="University Ave", limit=3):
    print(summary.apn, summary.address, summary.total_units)

# Drill into one result: get full property detail via the summary's navigation op.
summary = client.propertysummaries.search(query="University Ave", limit=1).first()
if summary:
    prop = summary.details()
    print(prop.address)
    for unit in prop.units[:3]:
        print(unit.regulation_type, unit.current_rent, unit.max_allowed_rent, unit.status)

# Find a property directly by address — single round-trip.
found = client.properties.find_by_address(address="University Ave")
print(found.apn, found.address, len(found.units))

# Typed error handling: catch PropertyNotFound for a bad address.
try:
    client.properties.find_by_address(address="99999 Nonexistent Blvd")
except PropertyNotFound as exc:
    print(f"not found: {exc.address}")

# Registration statistics — aggregate counts, no input needed.
stats = client.registrationstatses.get()
print(stats.open, stats.closed)

# Browse FAQs.
for faq in client.faqs.list(limit=3):
    print(faq.title, faq.language)

print("exercised: propertysummaries.search / summary.details / properties.find_by_address / registrationstatses.get / faqs.list")
All endpoints · 5 totalmissing one? ·

Full-text search over Berkeley rental properties by address or APN number. Returns paginated summaries with location and parcel data. Pagination via page number; total count is included in the response for client-side page math.

Input
ParamTypeDescription
pageintegerPage number for pagination
limitintegerNumber of results per page
queryrequiredstringSearch keyword (address, street name, or APN number)
Response
{
  "type": "object",
  "fields": {
    "page": "integer - current page number",
    "limit": "integer - results per page",
    "total": "integer - total matching records",
    "properties": "array of property summary objects with apn, address, total_units, latitude, longitude, title, type"
  },
  "sample": {
    "data": {
      "page": 1,
      "limit": 5,
      "total": 152,
      "properties": [
        {
          "apn": "057209201000",
          "type": "ADDRESS",
          "title": "057209201000",
          "address": "939 UNIVERSITY AVE BERKELEY CA 94710",
          "latitude": null,
          "longitude": null,
          "total_units": 0
        }
      ]
    },
    "status": "success"
  }
}

About the Cityofberkeley API

Property Search and Lookup

The search_properties endpoint accepts a free-text query — an address, street name, or APN number — and returns paginated summaries including apn, address, total_units, latitude, longitude, and property type. The total field in the response lets you calculate pages client-side using your chosen limit. For a direct parcel lookup, get_property_details takes an apn string (e.g., 057209201000) and returns a full unit array, with each unit carrying unit_number, regulation_type, current_rent, max_allowed_rent, and status.

Address-Based Rent Resolution

If you have an address but not an APN, get_address_rent_info resolves it for you. Supply an address string and the endpoint returns the matched apn, the full address as recorded in the registry, and the same unit-level rent detail array. When no property matches, the response returns a stale_input indicator so you can handle misses cleanly without parsing error messages.

Registry Statistics and FAQs

get_registration_stats returns a point-in-time snapshot of open and closed rent registration case counts across all Berkeley properties — no parameters required. The response also includes a status object with a code and message from the upstream registry. get_faqs retrieves paginated FAQ entries from the rent registry, each with a title, HTML content, and language code, useful for building tenant-facing tools that surface official guidance alongside raw data.

Reliability & maintenanceVerified

The Cityofberkeley API is a managed, monitored endpoint for rentregistry.cityofberkeley.info — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rentregistry.cityofberkeley.info changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official rentregistry.cityofberkeley.info API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Verify the maximum allowed rent for a specific Berkeley rental unit before signing a lease
  • Build a tenant advocacy tool that maps rent-regulated properties using latitude/longitude from search_properties
  • Track open vs. closed registration case counts over time using get_registration_stats
  • Cross-reference APN numbers from county assessor data with unit-level rent limits via get_property_details
  • Populate a renter information portal with official FAQ content using get_faqs
  • Identify properties with multiple registered units and their occupancy status for housing research
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the City of Berkeley provide an official developer API for the Rent Registry?+
The City of Berkeley does not publish a documented public developer API for the Rent Registry at rentregistry.cityofberkeley.info. This Parse API provides structured access to the registry data through defined endpoints.
What does get_property_details return for a given APN?+
It returns the full property address and an array of all registered rental units for that parcel. Each unit object includes unit_number, regulation_type, current_rent, max_allowed_rent, and status. If no address is recorded in the registry, the address field returns null.
Does the API cover historical rent data or changes over time?+
Not currently. The endpoints return point-in-time snapshots: current_rent and max_allowed_rent reflect the latest registered values, and get_registration_stats reflects open and closed case counts at the moment of the request. No historical series or audit logs are exposed. You can fork this API on Parse and revise it to add an endpoint that polls and stores snapshots over time if longitudinal tracking is needed.
What happens when an address search in get_address_rent_info finds no match?+
The endpoint returns a stale_input indicator in the response rather than an HTTP error, so you can branch on that flag in your code. This occurs when the address string doesn't match any property in the registry. Searching by APN via get_property_details avoids this ambiguity when you already have the parcel number.
Does the API cover rental properties in other Bay Area cities or unincorporated Alameda County?+
Not currently. Coverage is limited to properties registered in Berkeley's municipal Rent Registry. Properties in Oakland, Emeryville, or other nearby jurisdictions are not included. You can fork this API on Parse and revise it to point at other local rent registry sources if you need multi-city coverage.
Page content last updated . Spec covers 5 endpoints from rentregistry.cityofberkeley.info.
Related APIs in Government PublicSee all →
rent.com API
Browse and extract rental property data from Rent.com. Search listings by location and filter by beds, baths, price, and pet policy. Retrieve full property details, floor plans, unit availability, amenities, nearby schools, points of interest, and active specials.
inberlinwohnen.de API
Search and browse affordable apartment listings from Berlin's state-owned housing companies, view detailed property information, and access company profiles and tenant guides. Find your next home in Berlin with comprehensive data on available rentals and housing provider information in one place.
streeteasy.com API
Search and browse NYC apartment rentals to find detailed property information including photos, amenities, pricing, and direct contact details for brokers and agents. Filter through available listings and access comprehensive rental data to help you discover your next home in New York City.
rentals.ca API
Search and browse rental listings across Canada by city or neighbourhood, and view detailed property information including prices, amenities, and availability. Find your next home by filtering thousands of rental properties on Rentals.ca in real-time.
rew.ca API
Search rental and for-sale properties across Canada, get detailed listing information, explore neighbourhoods, and find real estate agents in your area. Access property details, agent profiles, and neighbourhood data all in one place.
amberstudent.com API
Search student accommodation listings across popular cities and access comprehensive property information including room types, pricing trends, and tenant reviews. Get detailed insights into student housing options to compare amenities, prices, and community feedback all in one place.
pararius.com API
Search and browse rental property listings on Pararius.com. Filter by city, price, size, and furnishing; retrieve full property details; look up listings by estate agent; and autocomplete location queries.
qPublic Property Records API
Search for properties on qPublic and access comprehensive details including owner information, valuations, building and land characteristics, sales history, tax exemptions, and fees. Retrieve complete property records to research real estate, verify ownership, or analyze property values.