Closed beta · run Worlds on your machineBrowse worlds →
Docs menu · Zillow API

Worlds / Real estate

Zillow API

A local Zillow Rental Manager with listings, renter leads, messages, tour requests and price history. Test the leasing agent that answers leads, schedules tours and updates listings.

Base path
/v1
Auth
OAuth 2.0 bearer token or server token, the world key
Endpoints
12
Status
Active today

This reference previews the surface the Zillow world serves in the closed beta. Paths mirror the public Zillow API; the exact subset is confirmed when your workflow is scoped.

Connect

The run gives your agent these bindings. Keep your SDK; change only where it sends requests.

bindingmeaning
WORLDS_ZILLOW_URLThis world's origin followed by /v1
WORLDS_API_KEYThe world key, accepted wherever Zillow expects a credential
WORLDS_WORLD_IDThe isolated world's identity
js · fetch
const base = process.env.WORLDS_ZILLOW_URL + "/v1";

const res = await fetch(base + "/properties/search?location=Austin%2C%20TX&status=for_sale&beds_min=3", {
  headers: {
    Authorization: "Bearer " + process.env.WORLDS_API_KEY,
    Accept: "application/json",
  },
});

const { results } = await res.json();
console.log(results[0].zpid);

API reference

Properties

Homes and their public record details.

  • GET/v1/properties/searchSearch properties
  • GET/v1/properties/{zpid}Get a property
  • GET/v1/properties/{zpid}/photosList property photos
Fields · 6
zpidintegerZillow property id
addressobjectStreet, city, state, zip
bedroomsnumberBedrooms
bathroomsnumberBathrooms
livingAreaintegerSquare feet
homeStatusstringFOR_SALE, FOR_RENT, SOLD

Zestimates

Estimated value and rent for a home.

  • GET/v1/properties/{zpid}/zestimateGet a Zestimate
  • GET/v1/properties/{zpid}/zestimate/historyGet Zestimate history
Fields · 5
zpidintegerProperty id
zestimateintegerEstimated value
rentZestimateintegerEstimated monthly rent
valueRangeobjectLow and high
lastUpdateddateLast refreshed

Listings

Listings an agent or manager publishes.

  • GET/v1/listingsList listings
  • POST/v1/listingsCreate a listing
  • PUT/v1/listings/{listingId}Update a listing
  • DELETE/v1/listings/{listingId}Remove a listing
Fields · 5
listingIdstringListing id
priceintegerList price or rent
statusstringActive, pending, off market
descriptionstringListing text
daysOnZillowintegerDays listed

Leads

Inquiries from interested renters and buyers.

  • GET/v1/leadsList leads
  • GET/v1/leads/{leadId}Get a lead
  • PATCH/v1/leads/{leadId}Update a lead
Fields · 6
leadIdstringLead id
namestringContact name
emailstringEmail
phonestringPhone
listingIdstringListing inquired about
messagestringInquiry message

Test workflow

  1. Prepare. Select the Zillow setup for your workflow and review its starting records, including properties, zestimates, listings.
  2. Connect. Configure your agent with this world's URL and key using the SDK example. Check that it reaches the intended API before running a test.
  3. Define. Describe the task, expected final changes and records that must stay untouched. Keep expected outcomes separate from the agent's instructions.
  4. Run and inspect. Use the dashboard or your workflow's generated CLI setup. Review final records and changes, then rerun from the same starting setup with the relevant failure conditions. Use Deployment and CI to automate the same workflow.

What to verify

  • Sample, Avery got a reply quoting the Elm St rent
  • Test, Blake toured Saturday 10:00
  • Demo, Casey not booked into the 10:00 slot
  • Every reply quotes the listing the lead came from
  • No showing slot holds two renters

Test file

A task file names the jobs, the policy your agent is given and what the grader reads back from the world's final state. The agent never sees the expected outcomes.

yaml · worlds/tasks.yaml
# worlds/tasks.yaml · Zillow
version: 2
connector: zillow
seed: zillow-starter
mode: isolated
policy: >
  Answer this morning's leads. Reply with the correct rent and pet policy for
  the listing they asked about, and book tours only into open showing slots,
  one renter per slot.
tasks:
  - id: reply-to-new-renter-leads-with-listing-details
    prompt: Reply to new renter leads with listing details
  - id: schedule-tours-in-open-showing-slots
    prompt: Schedule tours in open showing slots
  - id: update-listing-price-and-availability
    prompt: Update listing price and availability
expected:
  - "Sample, Avery got a reply quoting the Elm St rent"
  - "Test, Blake toured Saturday 10:00"
  - "Demo, Casey not booked into the 10:00 slot"
  - Every reply quotes the listing the lead came from
  - No showing slot holds two renters
scenarios:
  - lead-delivered-twice
  - slot-taken
  - rate-limited

See Tasks and outcomes for every field, and Deployment and CI to run the file on every pull request.

Failure conditions

Each one fires before the handler, at the same step on every run.

conditionwhat the agent sees
lead-delivered-twiceThe same inquiry arrives two times
slot-takenA tour slot is booked by a teammate during the run
rate-limitedListing updates return 429
listing-pausedA listing goes inactive mid run

Starting data

Start each run from the same records and relationships. The overview below describes the Zillow starter; use the setup supplied for your workflow when preparing your own snapshot.

RecordsStarting setup
listings12 active rentals with photos and rents
leads50 renter inquiries across new, replied and toured
tours15 scheduled showings across the week
price historyRent changes over the last 90 days
showing slotsOpen times set by the leasing team

The record shapes below reuse this world's API field definitions. They show illustrative values and placeholders, not an importable seed. API responses and seed input can differ; include all required records and references in the accepted import format for your workflow.

Properties records

Properties

Homes and their public record details.

FieldTypeMeaning / relationship
zpidintegerZillow property id
addressobjectStreet, city, state, zip
bedroomsnumberBedrooms
bathroomsnumberBathrooms
livingAreaintegerSquare feet
homeStatusstringFOR_SALE, FOR_RENT, SOLD
json · illustrative record shape
{
  "zpid": 1,
  "address": {},
  "bedrooms": 1,
  "bathrooms": 1,
  "livingArea": 1,
  "homeStatus": "<FOR_SALE, FOR_RENT, SOLD>"
}

See properties operations

Zestimates records

Zestimates

Estimated value and rent for a home.

FieldTypeMeaning / relationship
zpidintegerProperty id
zestimateintegerEstimated value
rentZestimateintegerEstimated monthly rent
valueRangeobjectLow and high
lastUpdateddateLast refreshed
json · illustrative record shape
{
  "zpid": 1,
  "zestimate": 1,
  "rentZestimate": 1,
  "valueRange": {},
  "lastUpdated": "<Last refreshed>"
}

See zestimates operations

Listings records

Listings

Listings an agent or manager publishes.

FieldTypeMeaning / relationship
listingIdstringListing id
priceintegerList price or rent
statusstringActive, pending, off market
descriptionstringListing text
daysOnZillowintegerDays listed
json · illustrative record shape
{
  "listingId": "<Listing id>",
  "price": 1,
  "status": "<Active, pending, off market>",
  "description": "<Listing text>",
  "daysOnZillow": 1
}

See listings operations

Leads records

Leads

Inquiries from interested renters and buyers.

FieldTypeMeaning / relationship
leadIdstringLead id
namestringContact name
emailstringEmail
phonestringPhone
listingIdstringListing inquired about
messagestringInquiry message
json · illustrative record shape
{
  "leadId": "<Lead id>",
  "name": "<Contact name>",
  "email": "person@example.test",
  "phone": "<Phone>",
  "listingId": "<Listing inquired about>",
  "message": "<Inquiry message>"
}

See leads operations

See the Zillow world in the catalog