PropRaven API

238M+ US property records. RESTful JSON API with parcel search, owner intelligence, permits, deeds, and market analytics.

Getting Started

  1. 1Create an account at propzilla.vercel.app/sign-up
  2. 2Generate an API key at Settings > API Keys
  3. 3Make your first request (see examples below)

Authentication

Include your API key in the Authorization header:

Authorization: Bearer pz_your_key_here

Requests without a key fall back to IP-based free-tier rate limits. Some endpoints (deals, market, owners) require authentication.

Code Examples

curl

curl -H "Authorization: Bearer pz_your_key" \
  "https://propzilla.vercel.app/api/v1/parcels/37183:0429966"

Python

import requests

resp = requests.get(
    "https://propzilla.vercel.app/api/v1/parcels/37183:0429966",
    headers={"Authorization": "Bearer pz_your_key"}
)
parcel = resp.json()
print(parcel["address"], parcel["total_assessed_value"])

JavaScript

const res = await fetch(
  "https://propzilla.vercel.app/api/v1/parcels/37183:0429966",
  { headers: { Authorization: "Bearer pz_your_key" } }
);
const parcel = await res.json();
console.log(parcel.address, parcel.total_assessed_value);

Rate Limits

TierPer DayPer MinutePrice
Free10010$0
Pro10,000100$49/mo
API 100K100,0001,000$199/mo

Rate limit info is returned in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Endpoints

MethodPathDescriptionAuth
GET/api/v1/parcels/{id}Look up a single parcel by IDOptional
GET/api/v1/parcels/{id}/ownerOwner details and portfolio summaryOptional
GET/api/v1/parcels/{id}/permitsBuilding permits for a parcelOptional
GET/api/v1/parcels/{id}/deedsDeed and transaction historyOptional
GET/api/v1/parcels/{id}/risksFlood, wildfire, air quality, and crime riskOptional
POST/api/v1/searchSearch parcels by bounds, filters, and sortingOptional
GET/api/v1/coverageData coverage by state and countyOptional
GET/api/v1/deals/absenteeFind absentee-owned propertiesRequired
GET/api/v1/deals/flipsRecent flips and active flipper profilesRequired
GET/api/v1/market/countiesCounty-level market statisticsRequired
GET/api/v1/market/trendsQuarterly market trends and comparisonsRequired
GET/api/v1/owners/searchSearch property owners by nameRequired
GET/api/v1/owners/{name}/portfolioFull portfolio for an ownerRequired

Error Handling

Errors return a JSON object with an error field:

{
  "error": "Invalid API key"
}
StatusMeaning
400Bad request (missing or invalid parameters)
401Invalid or missing API key
403API key is inactive or expired
404Resource not found
429Rate limit exceeded (check Retry-After header)
500Internal server error

OpenAPI Specification

The full OpenAPI 3.0 specification is available at /openapi.json. Import it into Postman, Insomnia, or any OpenAPI-compatible tool.