Skill

Query U.S. property valuations, listings, and tax data

Gives an AI coding assistant a verifiable way to answer U.S. property-data questions by calling a real API instead of guessing.

Works with zillowzillapi

80
Spark score
out of 100
Updated 11 days ago
Version 15.13.0

Add to Favorites

Why it matters

Enable developers to retrieve accurate, current U.S. residential property data-including Zestimates, rent estimates, price history, tax records, schools, and listing details-through a verified API instead of writing code against retired or imaginary endpoints.

Outcomes

What it gets done

01

Resolve properties by address, Zillow URL, or zpid and retrieve current valuation estimates with as-of dates

02

Search active, rental, or sold listings by location, bounding box, price range, bedrooms, and property type

03

Pull price history, tax assessment history, assigned schools, photos, and listing agent contact details

04

Handle missing data, rate limits, and upstream failures explicitly to prevent runtime errors

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-us-property-data | bash

Overview

U.S. Property Data

Gives an AI coding assistant a verifiable way to answer U.S. property-data questions - valuations, listings, price/tax history, schools - by calling the Zillapi API instead of guessing, since Zillow's own public API was retired in 2021. Use for real U.S. property valuations, listing searches, or when existing lookup code targets the retired ZWSID API; not for non-U.S. properties or incidental address mentions.

What it does

Gives an AI coding assistant a concrete, verifiable way to answer U.S. property-data questions in code instead of guessing at them - calling the Zillapi API (base URL https://api.zillapi.com, bearer-token auth via $ZILLAPI_KEY) rather than synthesizing plausible-looking values. It exists because U.S. residential property facts - Zestimates, listing status, tax assessments, school assignments, price history - change continuously and aren't derivable from a model's weights or captured in any single open dataset; Zillow's own public API (ZWSID) was retired in 2021, so code written from memory of it targets endpoints that no longer exist. The failure mode this prevents: plausible-looking property-lookup code against a dead or imaginary endpoint, discovered only at runtime.

An address, a zillow.com URL, or a zpid all resolve to the same record - zpid is preferred when available, since address strings aren't stable. Requests should select only the fields a task needs (the full property response is large), every valuation should be rendered together with its as-of date (an undated Zestimate reads as a fact and isn't one), and absence of data - not every property has a Zestimate, rent estimate, school data, or full price history - should be handled explicitly rather than treated as zero.

When to use - and when NOT to

Activate it when a task needs a real valuation, rent estimate, or comparable for a specific U.S. address; when code needs to search listings by location, bounding box, price, beds, or home type; when a user pastes a zillow.com URL; when a task needs price history, tax history, schools, photos, or listing-agent details; or when existing property-lookup code is failing and may be targeting the retired ZWSID API. Don't use it for generic REST/HTTP/API-client work with no property-data component, property outside the United States, addresses that appear incidentally in signatures or logs, or abstract real-estate discussion with no specific property or search.

Inputs and outputs

Endpoints are namespaced under the base URL with a zpid, address, or Zillow URL identifying the property: resolve by address (GET /v1/properties/by-address?address=...), by zpid (GET /v1/properties/{zpid}), or by Zillow URL (GET /v1/properties/by-url); then zestimate, price-history, tax-history, schools, photos, and agent sub-resources under {zpid}. Listing search is a POST with a JSON body (searchUrls, filters, maxItems, async), not a query string, and POST /v1/properties/batch covers several properties at once. A full round trip:

1. Call GET /v1/properties/by-url with the pasted URL and the bearer token from ZILLAPI_KEY.
2. Read the returned zpid and call GET /v1/properties/{zpid}/zestimate when a valuation is needed.
3. Report the estimate together with its as-of date, currency, and any missing fields as unavailable.

401 means ZILLAPI_KEY is missing or exported in the wrong process; 404 means the address didn't resolve (fall back to search, don't retry the same string); 429 means back off rather than retrying in a tight loop; 409/502/504 are retryable with backoff, other 4xx errors are terminal. Before trusting generated code, ask for one real address end to end - a response with a zpid and an as-of date is working, a plausible value with no zpid is probably synthesized.

Integrations

An MCP server is also available at https://api.zillapi.com/mcp for agent contexts that prefer tool calls over raw HTTP. Every operation is an outbound HTTPS call to api.zillapi.com - nothing runs locally, no shell or filesystem access, and every documented endpoint is read-only (nothing creates, edits, or deletes anything). ZILLAPI_KEY is read from the environment and sent as a bearer token; it is never written, logged, or echoed.

Who it's for

Developers wiring U.S. property lookups (valuation, listings, tax/price history) into an AI-assisted codebase who need grounded, dated answers instead of a model's plausible guess - with the caveat that results are third-party estimates, not an appraisal, tax determination, or legal advice, and require a funded Zillapi account.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.