Property Catalog
The Property catalog provides a complete solution for real-estate listings: categories, verified addresses, property listings with type-specific details, and customer inquiries for lead tracking.
Key resources
| Concept | TypeScript | Python |
|---|---|---|
| Categories, addresses, properties | client.propertyConfig | client.property_config |
| Customer inquiries | client.propertyInquiries | client.property_inquiry |
Python access pattern
The Python examples on the following pages access the property resources from the client:
from wiil import WiilClient
client = WiilClient(api_key="your-api-key")
property_config = client.property_config
property_inquiry = client.property_inquiry
In TypeScript these are accessed directly as client.propertyConfig and client.propertyInquiries.
How it fits together
A category organizes properties; each property has a verifiable address and type-specific details (residential, commercial, or land). An inquiry captures customer interest against a property and links to a customer as the lead progresses.
- A category organizes listings by type (Luxury Homes, Commercial Offices).
- An address is a standalone, verifiable location with optional coordinates.
- A property is a listing with pricing, features, and type-specific details (residential, commercial, or land).
- An inquiry tracks customer interest, viewings, and lead status, optionally linked to a customer.
How a lead works
An inquiry moves through a defined set of PropertyInquiryStatus values as the agent qualifies the lead, schedules viewings, and works toward conversion.
Why it matters
- For listings — model a property once with verified addresses and type-specific details; the same data powers your web listings and grounds the AI agent that answers questions about each property.
- For leads — every inquiry carries a clear status, so viewings, follow-ups, and negotiations never fall through the cracks.
- For conversion — a defined lifecycle from
NEWtoCONVERTED(orCLOSED) gives a measurable pipeline across voice and chat channels.
SDK parity matrix
This shows which operations the SDK example guides demonstrate for each language. — means the guide does not include an example for that language.
| Area | Operations | TypeScript | Python |
|---|---|---|---|
| Categories | create, get, list, update, batch | ✓ | ✓ |
| Categories | delete | ✓ | — |
| Addresses | create, update, verify, batch | ✓ | ✓ |
| Addresses | get, list, delete | ✓ | — |
| Properties | create, get, list, get by category, search, update, delete, batch | ✓ | ✓ |
| Properties | get by address | ✓ | — |
| Inquiries | create, get by property, update, update status | ✓ | ✓ |
| Inquiries | get, get by customer, list, delete | ✓ | — |
Enums (schema reference)
| Enum | Values |
|---|---|
| PropertyType | residential, commercial, land |
| PropertySubType | house, apartment, condo, townhouse, villa, office, retail, warehouse, industrial, lot, farm, acreage |
| ListingType | sale, rent, both |
| ListingStatus | DRAFT, ACTIVE, PENDING, SOLD, LEASED, OFF_MARKET, EXPIRED |
| RentalPeriod | daily, weekly, monthly, yearly |
| PropertyCondition | new, excellent, good, fair, needs_work, fixer_upper |
| PropertyInquiryType | general, viewing, offer, information |
| PropertyInquiryStatus | NEW, CONTACTED, VIEWING_SCHEDULED, VIEWING_COMPLETED, NEGOTIATING, CONVERTED, CLOSED |
Pages
- Categories & addresses — organize listings and manage locations
- Properties — create and manage listings
- Inquiries — track leads, viewings, and conversions
- Quickstart — an end-to-end real-estate flow