Resources
Viewings and offers
The two resources that actually move an operation.
Viewings
GET /viewings?from=&to=&status=&lead_id=&property_id=
scheduled_at (ISO 8601) is required and validated.
A viewing is scoped to the brokerage through its lead: the table has no
brokerage column of its own. A viewing with no lead_id is invisible to the
API.
lead_iduuidrequiredproperty_iduuidscheduled_atISO 8601requiredSend an explicit offset. A time without one gets interpreted.
statusstringnotesstringOffers
GET /offers?offer_status=&offer_type=&operation_id=&property_id=&lead_id=
An offer is anchored on the operation. lead_id is taken from it, and
property_id from the body or the operation's own — if neither, 422.
operation_iduuidrequiredamountnumberrequiredcurrencystringproperty_iduuidoffer_typestringFollows the property's listing_type when omitted.
conditionsstringThe response carries a public_token: the shareable offer link.
Recording an offer does not accept it and does not move the stage.
Accepting has consequences — the property returns to pending and its
listings are paused — which is why it is a separate decision.