Skip to main content

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​

ConceptTypeScriptPython
Categories, addresses, propertiesclient.propertyConfigclient.property_config
Customer inquiriesclient.propertyInquiriesclient.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.

Property catalog structureA category organizes properties. Each property has an address and type-specific details. An inquiry links a property to a customer. Property types are residential, commercial, or land.organizeslocated atCategoryby typePropertythe listingAddressverifiableInquiryinterest · viewingsCustomeroptional · linkedPROPERTY TYPEresidentialcommercialland
  • 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.

Property inquiry (lead) lifecycleA lead progresses through NEW, CONTACTED, VIEWING_SCHEDULED, VIEWING_COMPLETED, NEGOTIATING, and CONVERTED. CLOSED ends a lead without conversion. Inquiry types are general, viewing, offer, and information.LEAD LIFECYCLENEWCONTACTEDVIEWING_SCHEDULEDVIEWING_COMPLETEDNEGOTIATINGCONVERTEDCLOSEDa lead can close at anystage without convertingInquiry types: general · viewing · offer · information.

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 NEW to CONVERTED (or CLOSED) 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.

AreaOperationsTypeScriptPython
Categoriescreate, get, list, update, batch✓✓
Categoriesdelete✓—
Addressescreate, update, verify, batch✓✓
Addressesget, list, delete✓—
Propertiescreate, get, list, get by category, search, update, delete, batch✓✓
Propertiesget by address✓—
Inquiriescreate, get by property, update, update status✓✓
Inquiriesget, get by customer, list, delete✓—

Enums (schema reference)​

EnumValues
PropertyTyperesidential, commercial, land
PropertySubTypehouse, apartment, condo, townhouse, villa, office, retail, warehouse, industrial, lot, farm, acreage
ListingTypesale, rent, both
ListingStatusDRAFT, ACTIVE, PENDING, SOLD, LEASED, OFF_MARKET, EXPIRED
RentalPerioddaily, weekly, monthly, yearly
PropertyConditionnew, excellent, good, fair, needs_work, fixer_upper
PropertyInquiryTypegeneral, viewing, offer, information
PropertyInquiryStatusNEW, CONTACTED, VIEWING_SCHEDULED, VIEWING_COMPLETED, NEGOTIATING, CONVERTED, CLOSED

Pages​