Real Estate

Property Snapshot API API

The Property Enrichment API normalizes and resolves real-estate records as clean JSON.

4 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary snapshot endpoint returns a normalized property (address, country, source engine and id, listing URL) matched by URL or address, and you can resolve, batch and check coverage. It is built for proptech, CRM enrichment and data pipelines that need to canonicalize messy property data across sources. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, snapshot, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/enrich-property/v1/snapshot",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "listing_url": "https://www.zillow.com/homedetails/x/117892026_zpid/"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "enrich-property",
    "endpoint": "snapshot",
    "mode": "standard",
    "latency_ms": 4824.2,
    "record_count": 1,
    "bytes": 0,
    "cache_hit": false,
    "sources_matched": 1,
    "subcalls": [
      {
        "api": "zillow",
        "action": "property_detail",
        "status": "ok",
        "latency_ms": 4821.2
      }
    ]
  },
  "data": {
    "property": {
      "country": "US",
      "source_engine": "zillow",
      "source_id": "[redacted-phone]",
      "listing_url": "https://www.zillow.com/homedetails/x/[redacted-phone]_zpid/",
      "address_normalized": "1444 Fairmont St NW #4"
    },
    "match": {
      "mode": "url",
      "confidence": 0.99,
      "reasons": [
        "url-host+id"
      ],
      "candidates_considered": 0,
      "unit_disambiguated": null
    },
    "status": "sold",
    "price": {
      "list": {
        "value": 375000,
        "currency": "USD",
        "source": "zillow"
      },
      "rent": {
        "value": 2243,
        "currency": "USD",
        "source": "zillow"
      },
      "sold_history": [
        {
          "price": 375000,
          "date": null,
          "event": "sold",
          "currency": "USD",
          "source": "zillow"
        }
      ],
      "price_per_area": {
        "value": 625,
        "currency": "USD",
        "unit": "sqft",
        "source": "derived"
      }
    },
    "valuation": {
      "value": 373400,
      "currency": "USD",
      "source": "zillow:zestimate"
    },
    "facts": {
      "beds": {
        "value": 1,
        "source": "zillow",
        "confidence": 0.9
      },
      "baths": {
        "value": 1,
        "source": "zillow",
        "confidence": 0.9
      },
      "area": {
        "value": {
          "value": 600,
          "unit": "sqft"
        },
        "source": "zillow",
        "confidence": 0.85
      },
      "lot_area": null,
      "year_built": {
        "value": 1907,
        "source": "zillow",
        "confidence": 0.85
      },
      "property_type": {
        "value": "TOWNHOUSE",
        "source": "zillow",
        "confidence": 0.8
      }
    },
    "photos": {
      "count": 15,
      "sample": [
        "https://photos.zillowstatic.com/fp/71e089bc6009788afd7792ae0e696d8f-uncropped_scaled_within_1536_1152.jpg",
        "https://photos.zillowstatic.com/fp/0cc1847196ad832a939915e72613e1f1-uncropped_scaled_within_1536_1152.jpg",
        "https://photos.zillowstatic.com/fp/63374eee373bca8571bc0a15481e4679-uncropped_scaled_within_1536_1152.jpg"
      ],
      "source": "zillow"
    },
    "provenance": {
      "zillow": {
        "status": "matched",
        "engine": "zillow"
      }
    }
  }
}
Actions

What the Property Snapshot API API does

ActionDescriptionConcrete use caseKey params
snapshotaddress OR listing_url → one normalized property snapshot: status, price, sold-history, core facts, valuation (where available), per-field provenance + a match block (how the address was resolved + match_confidence).Real-estate investors call snapshot to get address OR listing_url → one normalized property snapshot.address, listing_url, country, mode
resolveaddress → ranked candidate listings[] (id + source + match_confidence) so the customer picks the exact property (apartment-unit / stale-listing disambiguation). The false-match-reducing flow — call this when a snapshot returns low confidence.Brokerage tools call resolve to get address → ranked candidate listings[] (id + source + match_confidence) so the customer picks….address, country, limit
batchsnapshot up to 10 addresses/listing-URLs in one call (standard mode, cache-first, per-item ok/error).Property dashboards call batch to get snapshot up to 10 addresses/listing-URLs in one call (standard mode, cache-first, per-item ok….items, country
coverageStatic capability map: which countries/sources are supported, per-country source set, and the documented gaps (UK has no AVM; JP only 4 prefectures). No sub-calls.Lead-generation teams call coverage to get static capability map.none
Code samples

Call snapshot from your stack

curl -X POST https://api.reefapi.com/enrich-property/v1/snapshot \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"listing_url":"https://www.zillow.com/homedetails/x/117892026_zpid/"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.enrich-property.snapshot with {"listing_url":"https://www.zillow.com/homedetails/x/117892026_zpid/"}.
Use cases

Who uses this API and why

  • Proptech tools call resolve to turn a messy address into a canonical property.
  • CRM enrichment attaches listing data to a real-estate lead.
  • Data pipelines use batch and coverage to normalize a property feed at scale.
FAQ

Questions developers ask before integrating

What is the Property Snapshot API API?

Property Snapshot API API is a ReefAPI endpoint group for property snapshot api It returns live JSON through POST requests under /enrich-property/v1.

Is the Property Snapshot API API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Property Snapshot API calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Property Snapshot API login or account?

No login to Property Snapshot API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Property Snapshot API data?

The page example is captured from a live snapshot call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Property Snapshot API API use?

Property Snapshot API actions currently cost 1-5 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Property Snapshot API from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call enrich-property actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Property Snapshot API API a Property Snapshot API scraper?

It is the managed alternative to a DIY Property Snapshot API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same property snapshot api back as clean JSON.

Why does my Property Snapshot API scraper keep getting blocked?

Most Property Snapshot API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / enrich-property

Property Snapshot API

Property Snapshot API

base /enrich-property/v14 endpoints
post/enrich-property/v1/snapshot5 credits

address OR listing_url → one normalized property snapshot: status, price, sold-history, core facts, valuation (where available), per-field provenance + a match block (how the address was resolved + match_confidence).

ParameterAllowed / rangeDescription
addressoptionalFree-text property address (street + city + state/postcode). Provide this OR listing_url. For the most reliable match include the unit/apt and the postcode. Supported countries: US, UK, Japan.
listing_urloptionalA copied listing URL — routed to the right source automatically (zillow.com, redfin.com, realtor.com, rightmove.co.uk, suumo.jp). Provide this OR address.
countryoptionalUS · GB · JPOptional ISO country hint to skip auto-detection (US/GB/JP). Recommended when an address is ambiguous (e.g. a bare ZIP/outcode).
mode = standardoptionalstandard · rich · cross_validatedDepth of the snapshot. rich adds area market_context; cross_validated (US) reconciles facts across all 3 US sources.
Try in playground →
post/enrich-property/v1/resolve2 credits

address → ranked candidate listings[] (id + source + match_confidence) so the customer picks the exact property (apartment-unit / stale-listing disambiguation). The false-match-reducing flow — call this when a snapshot returns low confidence.

ParameterAllowed / rangeDescription
addressoptionalFree-text property address (street + city + state/postcode). Provide this OR listing_url. For the most reliable match include the unit/apt and the postcode. Supported countries: US, UK, Japan.
countryoptionalUS · GB · JPOptional ISO country hint to skip auto-detection (US/GB/JP). Recommended when an address is ambiguous (e.g. a bare ZIP/outcode).
limit = 10optional1–25Max candidate listings to return (resolve action).
Try in playground →
post/enrich-property/v1/batch5 credits

snapshot up to 10 addresses/listing-URLs in one call (standard mode, cache-first, per-item ok/error).

ParameterAllowed / rangeDescription
itemsrequiredUp to 10 addresses and/or listing URLs (array). Each is snapshotted independently; per-item ok/error.
countryoptionalUS · GB · JPOptional ISO country hint to skip auto-detection (US/GB/JP). Recommended when an address is ambiguous (e.g. a bare ZIP/outcode).
Try in playground →
post/enrich-property/v1/coveragefree

Static capability map: which countries/sources are supported, per-country source set, and the documented gaps (UK has no AVM; JP only 4 prefectures). No sub-calls.

Try in playground →