Zillow Autocomplete avatar
Zillow Autocomplete

Pricing

Pay per event

Go to Apify Store
Zillow Autocomplete

Zillow Autocomplete

Developed by

Zillow API

Zillow API

Maintained by Community

A minimal API that returns a list of Zillow autocomplete suggestions for a free‑form query (ZIP, city, neighborhood, or address).

5.0 (1)

Pricing

Pay per event

0

1

1

Last modified

14 days ago

Zillow Autocomplete (Apify Actor) — Quickstart

A minimal API that returns a list of Zillow autocomplete suggestions for a free‑form query (ZIP, city, neighborhood, or address).

Is This What You Need?

  • Use this if you want to turn a user search string into a canonical location with coordinates (lat/lng) and metadata from Zillow’s autocomplete.
  • Use this to seed downstream Zillow queries with zpid, lat, long, etc.
  • Not for: scraping full property details, pagination of multiple suggestions, or historical/aggregated data.

Endpoint

  • Method: POST
  • URL: https://api.apify.com/v2/acts/re-ai~zillow-autocomplete/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
  • Body: JSON with a single required field
    • query (string): Free‑form search string (e.g., "Washington, DC", "1600 Pennsylvania Ave #22C Washington, DC 20004").

Authentication: Supply your Apify API token as the token query parameter.

Response

  • Success: An array with up to five suggestion objects from Zillow. Shape may vary, but commonly contains:
[
{
"resultType": "region|address|property",
"display": "Human readable label",
"metaData": {
"lat": 00.000000,
"lng": -00.000000,
"addressType": "zip|city|neighborhood|address",
"regionId": 123456 // when available
}
// ... additional provider fields may appear
}
]
  • Not found: An array with one error object, e.g. [{ "error": "No suggestions", "status": 404 }]
  • Bad request: [{ "error": "Missing required field: 'query'", "status": 400 }]
  • Upstream failure: [{ "error": "<message>", "status": 500 }]

Quickstart Examples

curl

export APIFY_TOKEN="<your-apify-token>"
curl -X POST \
"https://api.apify.com/v2/acts/re-ai~autocomplete/run-sync-get-dataset-items?token=${APIFY_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"query": "1600 Pennsylvania Ave #22C Washington, DC 20004"
}'

Python (requests)

import os
import requests
APIFY_TOKEN = os.environ.get("APIFY_TOKEN")
assert APIFY_TOKEN, "Set APIFY_TOKEN environment variable"
url = f"https://api.apify.com/v2/acts/re-ai~autocomplete/run-sync-get-dataset-items?token={APIFY_TOKEN}"
payload = {"query": "1600 Pennsylvania Ave #22C Washington, DC 20004"}
resp = requests.post(url, json=payload, timeout=60)
resp.raise_for_status()
items = resp.json() # list
if not items:
print("No items returned")
else:
first = items[0]
if "error" in first:
print(f"Error: {first['error']} (status {first.get('status')})")
else:
print(first)

JavaScript (Node 18+ fetch)

const token = process.env.APIFY_TOKEN;
if (!token) throw new Error("Set APIFY_TOKEN env var");
const url = `https://api.apify.com/v2/acts/re-ai~autocomplete/run-sync-get-dataset-items?token=${token}`;
const body = { query: "1600 Pennsylvania Ave #22C Washington, DC 20004" };
(async () => {
const res = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const items = await res.json();
const first = items?.[0];
if (first?.error) {
console.log(`Error: ${first.error} (status ${first.status})`);
} else {
console.dir(first, { depth: null });
}
})();

Behavior & Notes

  • First five result only: The actor returns the top suggestion from Zillow’s autocomplete.
  • Coordinates: When available, the suggestion includes metaData.lat and metaData.lng for use as a centroid in map/grid queries.
  • Input flexibility: query can be a ZIP code, city/state, neighborhood, or full address. More specific queries generally produce more precise results.
  • Rate/availability: Relies on a live Zillow endpoint. Availability, shape, and rate‑limits may change without notice.
  • Errors: You’ll receive a single dataset item with { error, status } when something goes wrong (400/404/500 patterns shown above).

FAQ

  • Can I pass extra parameters (e.g., timeout)?
    • This actor currently accepts only query. If you need more control (timeout, headers, full results), open an issue or request a custom variant.
  • What fields are guaranteed?
    • Only query is guaranteed as input. Output fields are provider‑dependent; handle missing fields defensively.

Support

  • Found an issue or need additional fields? Open a ticket or reach out with your use case and example queries.