Zillow batch lookup
POSThttps://api.propertiesapi.com/v1/zillow/batch
Up to 50 Zillow URLs or addresses in one request. Each item is looked up exactly as GET /v1/zillow/property would, and comes back with its own ok flag.
At a glance
- Billing: 1 credit per successful live lookup, by Zillow link or address. Repeat lookups of the same home within 24 hours come from cache and are free. Errors aren't billed.
- Auth:
x-api-keyheader. - Latency: typically 8 seconds, up to about 20 for a live lookup; repeat lookups within 24 hours come from the cache, with no live lookup.
Parameters
No query parameters. Send the items in the request body.
Request body
items: 1 to 50 entries. Each is a string (a zillow.com link or an address) or an object with one of url or address. Optional status (for_sale, sold or for_rent) applies to every item; optional raw: true adds data.raw.
{
"items": [
"https://www.zillow.com/homedetails/1600-Main-St-Austin-TX-78701/0000000_zpid/",
"1 Nowhere Rd, Austin, TX 78701",
{
"address": "1600 Main St, Austin, TX 78701"
}
],
"status": "for_sale"
}Example
curl "https://api.propertiesapi.com/v1/zillow/batch" -H "x-api-key: $PROPERTIESAPI_KEY" \
-H "content-type: application/json" \
-d '{"items":["https://www.zillow.com/homedetails/1600-Main-St-Austin-TX-78701/0000000_zpid/","1600 Main St, Austin, TX 78701"]}'{
"data": [
{
"index": 0,
"ok": true,
"data": {
"zpid": "0000000",
"price": 525000,
"zestimate": 512000,
"...": "same fields as GET /v1/zillow/property"
},
"meta": {
"credits": 0,
"cached": true,
"cache_key": "zpid:0000000",
"fetched_at": "2026-10-19T14:02:11.000Z",
"source": {
"provider": "self_hosted",
"collector": "propertiesapi/zillow-page-v1",
"note": "Read from the public Zillow page by our collector. Field availability varies by listing. PropertiesAPI is not affiliated with Zillow."
},
"release": "v1",
"took_ms": 2
}
},
{
"index": 1,
"ok": false,
"error": {
"code": "not_found",
"message": "No Zillow property matches this input"
}
}
],
"meta": {
"count": 2,
"succeeded": 1,
"failed": 1,
"cache_hits": 1,
"credits": 0,
"took_ms": 9120
}
}Example values are illustrative, not a real record. Fields Zillow doesn't show for a property come back as null. Data is provided as-is.
Notes
- More than 50 items returns 400 too_many_items. An empty or missing items array, or a body that isn't JSON, returns 400 bad_body. Split larger lists into several requests.
- data has one result per item, in the same order, with its index. Check each result's ok: one failed item doesn't fail the batch.
- Items run concurrently within an overall time limit of about 280 seconds. Items that couldn't start in time come back with error code batch_deadline; retry those.
- meta.credits is the number of credits charged. Only successful live lookups count; cache hits and failed items are free.
Errors
Errors are { error: { code, message, details? }, meta: { took_ms } } with status 400, 401, 500, 503 (per-item errors are inside data). Errors aren't billed. See errors.
Zillow is a trademark of Zillow, Inc. PropertiesAPI is an independent service and is not affiliated with, endorsed by or sponsored by Zillow.
Zillow batch lookup questions
How many properties can I send at once?+
Up to 50 items per request. Split longer lists into several requests.
What happens if one item fails?+
The rest still come back. Each result has its own ok flag, and failed items aren't billed.
Is this Zillow's official API?+
No. PropertiesAPI is an independent service and is not affiliated with, endorsed by or sponsored by Zillow. The data is provided as-is.
Do failed lookups cost anything?+
No. Only successful live lookups are billed. Errors are free, and repeat lookups of the same home within 24 hours come from cache for free.