{"openapi":"3.1.0","info":{"title":"Elise API","description":"EliseAI API documentation","version":"0.1.0"},"paths":{"/v1/prospect/{elise_prospect_id}":{"get":{"tags":["Prospect"],"summary":"Get Prospect","description":"Note: Additional fields may be added","operationId":"get_prospect_v1_prospect__elise_prospect_id__get","parameters":[{"required":true,"schema":{"type":"string","title":"Elise Prospect Id"},"name":"elise_prospect_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EliseProspect"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prospect":{"post":{"tags":["Prospect"],"summary":"Create Prospect Endpoint","description":"Note: Additional event types or fields may be added","operationId":"create_prospect_endpoint_v1_prospect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProspectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProspectResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prospect/internal-note":{"post":{"tags":["Prospect"],"summary":"Create Internal Note Endpoint","description":"Create an internal note on a prospect or resident conversation.","operationId":"create_internal_note_endpoint_v1_prospect_internal_note_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInternalNoteRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInternalNoteResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prospect/vendor_chat":{"post":{"tags":["Prospect"],"summary":"Post Vendor Chat","description":"[BETA] Vendor chat","operationId":"post_vendor_chat_v1_prospect_vendor_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VendorChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/properties/ils-config":{"get":{"tags":["Calendar"],"summary":"Get ILS property configuration for the authenticated ILS vendor","description":"Returns property-level ILS configuration for the authenticated ILS vendor.\n\nUse this endpoint to discover which Elise properties are configured for your ILS and to read\nthe current syndication, lead routing, instant-tour, and authorization settings for each property.\n\nPass `syndication=true` to return only properties Elise has configured to syndicate to your ILS.\nPass `syndication=false` to return only properties that are not syndicating to your ILS.\nOmit the parameter to return all live leasing properties.\n\nResults are paginated. Pass the `cursor` value from a response into the next request to continue\nlisting properties. A `null` cursor means the response is the last page.","operationId":"get_ils_config_v1_properties_ils_config_get","parameters":[{"description":"Maximum number of properties to return.","required":false,"schema":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Maximum number of properties to return.","default":500},"name":"limit","in":"query"},{"description":"Pagination cursor returned by the previous response.","required":false,"schema":{"type":"string","title":"Cursor","description":"Pagination cursor returned by the previous response."},"name":"cursor","in":"query"},{"description":"Restrict the response to properties under this Elise organization id.","required":false,"schema":{"type":"integer","title":"Elise Org Id","description":"Restrict the response to properties under this Elise organization id."},"name":"elise_org_id","in":"query"},{"description":"Restrict the response to a single property by Elise property id. When set, pagination is ignored.","required":false,"schema":{"type":"string","title":"Elise Property Id","description":"Restrict the response to a single property by Elise property id. When set, pagination is ignored."},"name":"elise_property_id","in":"query"},{"description":"When true, only return properties configured to syndicate to this ILS. When false, only return properties that are not syndicating to this ILS. When omitted, return all live leasing properties.","required":false,"schema":{"type":"boolean","title":"Syndication","description":"When true, only return properties configured to syndicate to this ILS. When false, only return properties that are not syndicating to this ILS. When omitted, return all live leasing properties."},"name":"syndication","in":"query"}],"responses":{"200":{"description":"ILS configuration for the authenticated vendor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IlsConfigResponse"}}}},"404":{"description":"Property not found or Property is not live on leasing"},"401":{"description":"Not Authorized for this endpoint"},"400":{"description":"Invalid pagination cursor"},"403":{"description":"Vendor access required or vendor is not a registered ILS"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/appointments/availability":{"get":{"tags":["Calendar"],"summary":"Get Appointment Availability","operationId":"get_appointment_availability_v1_property__property_id__appointments_availability_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"},{"required":true,"schema":{"type":"string","format":"date-time","title":"Start Time"},"name":"start_time","in":"query"},{"required":true,"schema":{"type":"string","format":"date-time","title":"End Time"},"name":"end_time","in":"query"},{"required":false,"schema":{"items":{"$ref":"#/components/schemas/TourType"},"type":"array"},"name":"tour_types[]","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentAvailability"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prospect/{elise_prospect_id}/appointment":{"post":{"tags":["Calendar"],"summary":"Book Appointment For Prospect","description":"Book an appointment for an existing prospect","operationId":"book_appointment_for_prospect_v1_prospect__elise_prospect_id__appointment_post","parameters":[{"required":true,"schema":{"type":"string","title":"Elise Prospect Id"},"name":"elise_prospect_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prospect/appointment":{"post":{"tags":["Calendar"],"summary":"Create Prospect With Appointment","description":"Create a new prospect with an appointment","operationId":"create_prospect_with_appointment_v1_prospect_appointment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProspectAppointmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProspectAppointmentResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/appointment/{appointment_id}":{"delete":{"tags":["Calendar"],"summary":"Cancel Appointment","description":"Cancel an existing appointment","operationId":"cancel_appointment_v1_appointment__appointment_id__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Appointment Id"},"name":"appointment_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Calendar"],"summary":"Update Appointment","description":"Reschedule appointment or update appointment type","operationId":"update_appointment_v1_appointment__appointment_id__patch","parameters":[{"required":true,"schema":{"type":"string","title":"Appointment Id"},"name":"appointment_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAppointmentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/appointment/{appointment_id}/outcome":{"post":{"tags":["Calendar"],"summary":"Mark Appointment Outcome","description":"Mark appointment outcome","operationId":"mark_appointment_outcome_v1_appointment__appointment_id__outcome_post","parameters":[{"required":true,"schema":{"type":"string","title":"Appointment Id"},"name":"appointment_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkAppointmentOutcomeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkAppointmentOutcomeResult"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/task":{"get":{"tags":["Task"],"summary":"Get Tasks","operationId":"get_tasks_v1_task_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Only Open","default":true},"name":"only_open","in":"query"},{"required":false,"schema":{"type":"integer","title":"Limit","default":100},"name":"limit","in":"query"},{"required":false,"schema":{"type":"integer","title":"Offset","default":0},"name":"offset","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Task"},"type":"array","title":"Response Get Tasks V1 Task Get"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/lead-sources":{"get":{"tags":["Property"],"summary":"Get Property Lead Sources","description":"Get all lead sources for a property.\n\nPass header X-Cache-Refresh: true to invalidate cached marketing sources\nfor this property and return fresh data.","operationId":"get_property_lead_sources_v1_property__property_id__lead_sources_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadSourcesResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/activity":{"get":{"tags":["Property"],"summary":"Get Property Activity","operationId":"get_property_activity_v1_property__property_id__activity_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"},{"required":false,"schema":{"type":"string","title":"Start Date"},"name":"start_date","in":"query"},{"required":false,"schema":{"type":"string","title":"End Date"},"name":"end_date","in":"query"},{"required":false,"schema":{"type":"integer","title":"Limit","default":100},"name":"limit","in":"query"},{"required":false,"schema":{"type":"integer","title":"Offset","default":0},"name":"offset","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Activity"},"type":"array","title":"Response Get Property Activity V1 Property  Property Id  Activity Get"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/residents":{"get":{"tags":["Property"],"summary":"List residents for a property","description":"Returns a paginated list of residents for a property.","operationId":"get_property_residents_v1_property__property_id__residents_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"},{"description":"Number of residents to return (max 500)","required":false,"schema":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Number of residents to return (max 500)","default":100},"name":"limit","in":"query"},{"description":"Number of residents to skip","required":false,"schema":{"type":"integer","minimum":0.0,"title":"Offset","description":"Number of residents to skip","default":0},"name":"offset","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Resident"},"type":"array","title":"Response Get Property Residents V1 Property  Property Id  Residents Get"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/units/{unit_id}":{"get":{"tags":["Property"],"summary":"Get Unit","description":"Get a unit by ID and lease term","operationId":"get_unit_v1_property__property_id__units__unit_id__get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"},{"required":true,"schema":{"type":"string","title":"Unit Id"},"name":"unit_id","in":"path"},{"required":false,"schema":{"type":"integer","title":"Lease Term"},"name":"lease_term","in":"query"},{"required":false,"schema":{"type":"string","format":"date","title":"Move In Date"},"name":"move_in_date","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Include Price","default":false},"name":"include_price","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Include Affordable","default":false},"name":"include_affordable","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Unit"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/units":{"get":{"tags":["Property"],"summary":"Property Units","operationId":"property_units_v1_property__property_id__units_get","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"},{"required":false,"schema":{"type":"boolean","title":"Include Price","default":false},"name":"include_price","in":"query"},{"required":false,"schema":{"type":"string","title":"Floorplan Name"},"name":"floorplan_name","in":"query"},{"required":false,"schema":{"type":"integer","title":"Num Bedrooms"},"name":"num_bedrooms","in":"query"},{"required":false,"schema":{"items":{"type":"integer"},"type":"array","title":"Num Bedrooms List[]"},"name":"num_bedrooms_list[]","in":"query"},{"required":false,"schema":{"type":"string","format":"date","title":"Move In Date Earliest"},"name":"move_in_date_earliest","in":"query"},{"required":false,"schema":{"type":"string","format":"date","title":"Move In Date Latest"},"name":"move_in_date_latest","in":"query"},{"required":false,"schema":{"type":"integer","title":"Lease Term Min"},"name":"lease_term_min","in":"query"},{"required":false,"schema":{"type":"integer","title":"Lease Term Max"},"name":"lease_term_max","in":"query"},{"required":false,"schema":{"type":"string","title":"Unit Id"},"name":"unit_id","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Only Available","default":true},"name":"only_available","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Include Affordable","default":false},"name":"include_affordable","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Unit"},"type":"array","title":"Response Property Units V1 Property  Property Id  Units Get"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/property/{property_id}/units/virtual-tour-links":{"post":{"tags":["Property"],"summary":"Update Virtual Tour Links","description":"Update virtual tour links for multiple units in a property","operationId":"update_virtual_tour_links_v1_property__property_id__units_virtual_tour_links_post","parameters":[{"required":true,"schema":{"type":"string","title":"Property Id"},"name":"property_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualTourLinksRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualTourLinksResponse"}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/idv/status":{"post":{"tags":["Identity Verification"],"summary":"Post Idv Status","operationId":"post_idv_status_v1_idv_status_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support":{"get":{"tags":["support"],"summary":"Fetch Support Lookup","operationId":"fetch_support_lookup_v1_support_get","parameters":[{"required":true,"schema":{"type":"string","title":"User Email Requesting"},"name":"user_email_requesting","in":"query"},{"required":true,"schema":{"type":"string","title":"Community Name"},"name":"community_name","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"401":{"description":"Not Authorized for this endpoint"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/properties":{"get":{"tags":["Properties v2"],"summary":"List properties","description":"Returns a paginated list of properties accessible to your integration.\n\nUse this endpoint to discover available properties and their basic information.\nFilter by active/inactive status to find specific properties.\n\n**Access Control**: You will only see properties that your API credentials\nhave been granted access to. Contact your account manager to request access\nto additional properties.","operationId":"list_properties_v2_properties_get","parameters":[{"description":"Number of properties to return (max 500)","required":false,"schema":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Number of properties to return (max 500)","default":100},"example":25,"name":"limit","in":"query"},{"description":"Whether to return only active properties","required":false,"schema":{"type":"boolean","title":"Active Only","description":"Whether to return only active properties","default":true},"example":true,"name":"active_only","in":"query"},{"description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page.","required":false,"schema":{"type":"string","title":"Cursor","description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page."},"name":"cursor","in":"query"},{"description":"Optional filter to include only properties within a given organization","required":false,"schema":{"type":"string","title":"Organization Id","description":"Optional filter to include only properties within a given organization"},"name":"organization_id","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertiesResponse"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"501":{"description":"Not implemented"},"503":{"description":"Property entity topology is temporarily unavailable"}}}},"/v2/properties/lookup":{"get":{"tags":["Properties v2"],"summary":"Look up properties by external system ID","description":"Resolves a partner system's property id (e.g. RentCafe, Entrata, Knock) to the Elise properties that match. \n                   For `RentCafe`, `external_id` must be numeric and is matched against the building's pricing/availability source;\n                   other systems match against the building's external CRM id scoped to that configured source. \n                   Results are filtered to production buildings (active, launched, non-test) with test-named buildings sorted last; \n                   buildings outside your access scope are silently dropped, and the endpoint returns 404 if nothing remains.","operationId":"lookup_property_by_external_id_v2_properties_lookup_get","parameters":[{"description":"External system that owns the id being looked up","required":true,"schema":{"allOf":[{"$ref":"#/components/schemas/PropertyLookupSystem"}],"description":"External system that owns the id being looked up"},"example":"RentCafe","name":"system","in":"query"},{"description":"The external system's identifier for the property","required":true,"schema":{"type":"string","minLength":1,"title":"External Id","description":"The external system's identifier for the property"},"example":"p12345","name":"external_id","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PropertyLookupListResponse"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"501":{"description":"Not implemented"},"503":{"description":"Property entity topology is temporarily unavailable"}}}},"/v2/properties/{property_id}":{"get":{"tags":["Properties v2"],"summary":"Retrieve a property","description":"Retrieves comprehensive details for a specific property.\n\nReturns full property information including address, property type, status,\ntotal units, and external system identifiers. Use this to get complete\nproperty context before making other API calls.\n\n**Property IDs**: Property IDs are permanent and unique across the system.\nUse the same ID format returned from the list properties endpoint.","operationId":"get_property_v2_properties__property_id__get","parameters":[{"description":"The property ID","required":true,"schema":{"type":"string","title":"Property Id","description":"The property ID"},"example":"12345","name":"property_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Property"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"501":{"description":"Not implemented"},"503":{"description":"Property entity topology is temporarily unavailable"}}}},"/v2/properties/{property_id}/units":{"get":{"tags":["Units v2"],"summary":"List units for a property","description":"Returns a paginated list of units for a specific property.\n\nUse this endpoint to retrieve all units within a property, with support for\ncursor-based pagination to handle large result sets efficiently.\n\n**Access Control**: You must have access to the specified property to view its units.","operationId":"list_units_v2_properties__property_id__units_get","parameters":[{"description":"The property ID","required":true,"schema":{"type":"string","title":"Property Id","description":"The property ID"},"example":"12345","name":"property_id","in":"path"},{"description":"Number of units to return (max 500)","required":false,"schema":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Number of units to return (max 500)","default":100},"example":25,"name":"limit","in":"query"},{"description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page.","required":false,"schema":{"type":"string","title":"Cursor","description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page."},"name":"cursor","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitsResponse"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"}}}},"/v2/properties/{property_id}/units/{unit_id}":{"get":{"tags":["Units v2"],"summary":"Retrieve a unit","description":"Retrieves comprehensive details for a specific unit.\n\nReturns full unit information including address, physical characteristics,\nfloor plan details, pricing, and availability information.\n\n**Unit IDs**: Unit IDs are permanent and unique across the system.\nUse the same ID format returned from the list units endpoint.","operationId":"get_unit_v2_properties__property_id__units__unit_id__get","parameters":[{"description":"The property ID","required":true,"schema":{"type":"string","title":"Property Id","description":"The property ID"},"example":"12345","name":"property_id","in":"path"},{"description":"The unit ID (numeric)","required":true,"schema":{"type":"string","title":"Unit Id","description":"The unit ID (numeric)"},"example":"67890","name":"unit_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnitV2WithEntity"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"}}}},"/v1/workflows/initiate/{workflow_id}":{"post":{"tags":["Workflows"],"summary":"Initiate Workflow","operationId":"initiate_workflow_v1_workflows_initiate__workflow_id__post","parameters":[{"required":true,"schema":{"type":"string","title":"Workflow Id"},"name":"workflow_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"409":{"description":"Conflict - duplicate resource"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"501":{"description":"Not implemented"},"503":{"description":"Service unavailable - external service failure"}}}},"/v2/maintenance/properties/{property_id}/work_orders":{"get":{"tags":["Maintenance"],"summary":"List work orders for a property","description":"Returns a paginated list of maintenance work orders for a property.\n\nUse this endpoint to retrieve work orders that EliseAI has for a specific\nproperty. Results use cursor-based pagination; pass the `next_cursor` value\nfrom the previous response as `cursor` to fetch the next page.\n\nIf you use this API to sync work orders with another system, this endpoint can\nbe used for reads, backfills, or reconciliation. Use the returned Elise `id` as\n`work_order_id` when correlating with `work_order_event` webhooks or when\nupdating by Elise ID. If your system prefers to key updates by its own work-order\nID, provide `external_work_order_id` when creating a work order through this API,\nor return `external_work_order_id` from a `WorkOrderCreated` webhook response\nwhen your integration configuration supports external-ID link-back. See the\n`work_order_event` webhook entry in this OpenAPI specification for details.\n\n**Result window**: This endpoint returns work orders created on or after\nJanuary 1, 2025 UTC. Older records are not returned.\n\n**Status filtering**: Use `statuses[]` to filter by one or more statuses; this\nendpoint does not support a separate `status` query parameter.\n\n**Scope filtering**: Use `scope=team` to return only work orders created by your\nteam through the POST work-order API. The default `scope=all` returns all work\norders visible for the property. `team` does not refer to the maintenance team\nassigned to a work order.\n\n**Work-order ID filtering**: Use `work_order_ids[]` to filter by one or more\nElise work-order IDs returned in the `id` field. Provide up to 100 IDs. These\nare Elise IDs, not `external_work_order_id` values. ID values are ORed together\nand combined with other filters.\n\n**Resident-facing fields**: Work orders include status, category,\nscheduling/access details, assigned technician names, updates, and completion\nnotes when those fields are available.\n\n**Resident filtering**: Use `resident_ids[]` to filter by one or more Elise\npublic resident UUIDs, or `external_resident_ids[]` to filter by one or more\nthird-party resident identifiers from an external property management system.\nRepeat either parameter to supply multiple values. Values across both parameters\nare ORed together. Responses include all linked Elise public resident UUIDs.\n\n**Updated-at filtering**: Use `updated_at_start` and `updated_at_end` to return\nwork orders updated within a timestamp window.\n\n**Ordering**: Work orders are ordered by `updated_at` descending.\n\n**Created by values**:\n\n| Value | Meaning |\n|-------|---------|\n| `AI` | Created by Elise MaintenanceAI. |\n| `Resident` | Created by a resident through the Resident App. |\n| `Agent` | Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal. |\n| `API` | Created through this public API. |\n| `PMS` | Synced from your property management system. |\n| `Project` | Created from an Elise maintenance project. |\n\n**Access Control**: You must have access to the specified property to view its\nwork orders.","operationId":"list_work_orders_v2_maintenance_properties__property_id__work_orders_get","parameters":[{"description":"The property ID","required":true,"schema":{"type":"string","title":"Property Id","description":"The property ID"},"example":"12345","name":"property_id","in":"path"},{"description":"Number of work orders to return (max 500)","required":false,"schema":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","description":"Number of work orders to return (max 500)","default":20},"example":25,"name":"limit","in":"query"},{"description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page.","required":false,"schema":{"type":"string","title":"Cursor","description":"Pagination cursor from previous response. Use the next_cursor value from the previous response to get the next page."},"name":"cursor","in":"query"},{"description":"Which visible work orders to include. Use 'team' to return only work orders created by your team through the POST work-order API, not the maintenance team assigned to a work order; 'all' preserves the default behavior.","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/WorkOrderListScope"}],"description":"Which visible work orders to include. Use 'team' to return only work orders created by your team through the POST work-order API, not the maintenance team assigned to a work order; 'all' preserves the default behavior.","default":"all"},"example":"all","name":"scope","in":"query"},{"description":"Only return work orders whose Elise work-order ID matches one of these values. Provide up to 100 IDs. These are Elise IDs returned in the id field, not external_work_order_id values.","required":false,"schema":{"items":{"type":"integer"},"type":"array","maxItems":100,"title":"Work Order Ids[]","description":"Only return work orders whose Elise work-order ID matches one of these values. Provide up to 100 IDs. These are Elise IDs returned in the id field, not external_work_order_id values."},"example":[123456,123457],"name":"work_order_ids[]","in":"query"},{"description":"Only return work orders with these statuses. Repeat this parameter to filter by multiple statuses.","required":false,"schema":{"items":{"$ref":"#/components/schemas/WorkOrderStatus"},"type":"array","description":"Only return work orders with these statuses. Repeat this parameter to filter by multiple statuses."},"example":["NotStarted","InProgress"],"name":"statuses[]","in":"query"},{"description":"Only return work orders associated with these Elise public resident UUIDs. Repeat this parameter to filter by multiple residents (max 100).","required":false,"schema":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Resident Ids[]","description":"Only return work orders associated with these Elise public resident UUIDs. Repeat this parameter to filter by multiple residents (max 100)."},"example":["00000000-0000-4000-8000-000000000000"],"name":"resident_ids[]","in":"query"},{"description":"Only return work orders associated with these third-party resident identifiers from an external property management system. Repeat this parameter to filter by multiple residents (max 100).","required":false,"schema":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"External Resident Ids[]","description":"Only return work orders associated with these third-party resident identifiers from an external property management system. Repeat this parameter to filter by multiple residents (max 100)."},"example":["t0012345"],"name":"external_resident_ids[]","in":"query"},{"description":"Only return work orders last updated at or after this timestamp (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time","title":"Updated At Start","description":"Only return work orders last updated at or after this timestamp (ISO 8601)."},"example":"2026-03-24T12:00:00Z","name":"updated_at_start","in":"query"},{"description":"Only return work orders last updated before this timestamp (ISO 8601).","required":false,"schema":{"type":"string","format":"date-time","title":"Updated At End","description":"Only return work orders last updated before this timestamp (ISO 8601)."},"example":"2026-03-25T12:00:00Z","name":"updated_at_end","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkOrdersResponse"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"}}},"post":{"tags":["Maintenance"],"summary":"Create a work order","description":"Submit a new maintenance work order for a property.\n\nThe work order is created in **NotStarted** status, matching EliseCRM work-order\ncreation. Send a valid `issue_id`; EliseAI derives the display category,\ndefault specialty, default skill level, estimated duration, and default priority\nfrom that issue.\n\nThis endpoint does not accept `status`. Create represents intake of a new work\norder request, so every new work order starts as `NotStarted`; use\n`PATCH /v2/maintenance/work_orders/{work_order_id}` or\n`PATCH /v2/maintenance/work_orders/external/{external_work_order_id}` to move a\nwork order through its lifecycle after creation.\n\nIf your system has its own identifier for this work order, pass it as\n`external_work_order_id`. EliseAI stores it, and you can update the work order\nlater through `PATCH /v2/maintenance/work_orders/external/{external_work_order_id}`\nwithout tracking the EliseAI work order ID. External IDs must be unique within a\nproperty; reusing one returns **409 Conflict**.\n\nWork orders created through this API are saved in EliseAI only. They are not\nautomatically forwarded to other systems through a PMS push or\n`work_order_event` webhook. Treat the API response as the acknowledgement for\nthe write.\n\nReturns the ID of the newly created work order, which can be used to update it\nvia the PATCH endpoint or to correlate with webhook events.","operationId":"create_work_order_v2_maintenance_properties__property_id__work_orders_post","parameters":[{"description":"The property ID","required":true,"schema":{"type":"string","title":"Property Id","description":"The property ID"},"example":"12345","name":"property_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkOrderResponse"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"409":{"description":"Conflict - a work order with this external_work_order_id already exists"}}}},"/v2/maintenance/work_orders/{work_order_id}":{"get":{"tags":["Maintenance"],"summary":"Get a work order","description":"Returns a single maintenance work order.\n\nUse this endpoint when you already know the Elise work-order ID and need the\ncurrent full work-order details. The `work_order_id` is the Elise ID returned in\nthe `id` field from list, create, webhook, or update responses.\n\n**Access Control**: You must have access to the property that owns the work\norder.","operationId":"get_work_order_v2_maintenance_work_orders__work_order_id__get","parameters":[{"description":"Work order ID","required":true,"schema":{"type":"string","title":"Work Order Id","description":"Work order ID"},"example":"123456","name":"work_order_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWorkOrder"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"}}},"patch":{"tags":["Maintenance"],"summary":"Update a work order","description":"Update an existing work order. Only the fields included in the request\nbody are changed; omitted fields are left unchanged.\n\nStatus can be updated through this endpoint. Completed and Closed work orders\nare terminal and cannot be modified. Invalid status values or terminal\nmodifications return **422 Unprocessable Entity** with a descriptive message.\nUpdates through this API are saved in EliseAI only. They are not automatically\nforwarded to other systems through a PMS push or `work_order_event` webhook.\nTreat the API response as the acknowledgement for the write.","operationId":"update_work_order_v2_maintenance_work_orders__work_order_id__patch","parameters":[{"description":"Work order ID","required":true,"schema":{"type":"string","title":"Work Order Id","description":"Work order ID"},"name":"work_order_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWorkOrder"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"}}}},"/v2/maintenance/work_orders/external/{external_work_order_id}":{"patch":{"tags":["Maintenance"],"summary":"Update a work order by external ID","description":"Update an existing work order using your own work-order identifier\n(`external_work_order_id`) instead of the EliseAI work order ID.\n\nThe request body must include EliseAI `property_id`; the pair\n(`property_id`, `external_work_order_id`) identifies the work order. The\nexternal ID is the identifier your system supplied when the work order was\ncreated through this API. Only the update fields included in the request body\nare changed; omitted fields are left unchanged. Status transitions are validated\nthe same way as the update-by-ID endpoint; Completed and Closed work orders are\nterminal and cannot be modified.\n\nUpdates through this endpoint are saved in EliseAI only. They are not\nautomatically forwarded to other systems through a PMS push or\n`work_order_event` webhook. Treat the API response as the acknowledgement for\nthe write.","operationId":"update_work_order_by_external_id_v2_maintenance_work_orders_external__external_work_order_id__patch","parameters":[{"description":"Your work-order identifier supplied when the work order was created","required":true,"schema":{"type":"string","title":"External Work Order Id","description":"Your work-order identifier supplied when the work order was created"},"example":"WO-12345","name":"external_work_order_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkOrderByExternalIdRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceWorkOrder"}}}},"400":{"description":"Bad request - invalid parameters"},"401":{"description":"Unauthorized - invalid or missing API key"},"403":{"description":"Forbidden - insufficient permissions"},"404":{"description":"Not found - resource doesn't exist"},"422":{"description":"Unprocessable entity - validation error"},"500":{"description":"Internal server error"},"409":{"description":"Conflict - multiple work orders share this external ID within the property"}}}},"/v1/sites/{site_id}/sessions":{"post":{"tags":["Sites"],"summary":"Create Site Session","description":"Create a short-lived session token for a public property website.\n\nThis endpoint is intentionally unauthenticated. The browser's static JS\ncalls it with the site_id embedded in the page. Origin validation is\nhandled by SiteCorsMiddleware before this handler runs.","operationId":"create_site_session_v1_sites__site_id__sessions_post","parameters":[{"required":true,"schema":{"type":"string","title":"Site Id"},"name":"site_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"webhooks":{"prospect_event":{"post":{"summary":"New Prospect Event","description":"Whenever we receive information about a prospect, we will post it back to your registered webhook.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nEvent Types:\n* **ProspectUpdate:** Posted whenever a prospect is created, or additional information is gathered around a prospect\n* **Handoff:** Posted whenever Leasing Agent intervention is required\n* **ProspectEmailEvent:** Posted whenever Elise emails a lead or a lead emails Elise\n* **ProspectTextEvent:** Posted whenever Elise texts a lead or a lead texts Elise\n* **ProspectVoiceAIEvent:** Posted whenever a lead calls VoiceAI\n* **ProspectOptOutEvent:** Posted whenever a lead opts out of medium(s) of communication.\n* **ProspectOptInEvent:** Posted whenever a lead opts into medium(s) of communication.\n* **ProspectInternalNoteEvent:** Posted whenever a lead is added to a conversation as an internal note.\n* **ProspectWebchatEvent:** Posted whenever a lead chats with Elise via webchat.\n* **ProspectStatusChangeEvent:** Posted whenever a prospect status is changed.\n* **ProspectOwnerUpdateEvent:** Posted whenever a prospect owner is changed.","operationId":"new_prospect_eventprospect_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"task_event":{"post":{"summary":"Task Event Webhook","description":"Whenever a task is created or closed (resolved), we will post it back to your registered webhook.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nCreation events will include: \n* task_id (str): Elise identifier for the task\n* type (str): one of \"TaskCreated\", \"TaskClosed\"\n* task_type (str): describes the type of task that needs to be done such as \"ReplyNeeded\"\n* event_date (datetime): date and time of the event\n* elise_prospect_id (str): Elise identifier for the prospect\n* elise_conversation_id (str): Elise identifier for the conversation\n* elise_property_id (str): Elise identifier for the property\n* task_data (dict): additional data about the task (if applicable)\n\nResolutions will _additionally_ include:\n* resolution_type (str): describes how the task was resolved\n* resolution_user_id (str): Elise identifier for the user who resolved the task\n* resolution_user_email (str): email of the user who resolved the task\n* resolution_user_name (str): name of the user who resolved the task","operationId":"task_event_webhooktask_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"calendar_event":{"post":{"summary":"Calendar Event Webhook","description":"Whenever a calendar event is created, cancelled, or updated, we will post it back to your registered webhook.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nThis is the list of possible update types:\n* **AppointmentScheduled:** Posted whenever a new appointment is scheduled\n* **AppointmentCancelled:** Posted whenever an appointment is cancelled\n* **AppointmentShow:** Posted whenever a prospect shows up for their appointment\n* **AppointmentNoShow:** Posted whenever a prospect doesn't show up for their appointment\n* **AgentUpdated:** Posted whenever the assigned leasing agent for an appointment is changed\n\nCalendar events will include:\n* **event_id:** Unique identifier for the event\n* **type:** The type of event that occurred\n* **event_date:** Date and time of the event\n* **calendar_event_id:** Elise identifier for the calendar event\n* **elise_property_id:** Elise identifier for the property\n* **external_property_id:** External identifier for the property\n* **elise_prospect_id:** Elise identifier for the prospect\n* **external_prospect_id:** External identifier for the prospect\n\nAdditional fields based on the type of event:\n* **AppointmentScheduled:**\n  * **start_time:** The start time of the appointment\n  * **end_time:** The end time of the appointment\n  * **tour_type:** The type of tour\n  * **leasing_agent_email:** The email of the leasing agent\n  * **leasing_agent_app_user_id:** The ID of the leasing agent's app user\n* **AppointmentCancelled:**\n  * **start_time:** The start time of the appointment\n  * **end_time:** The end time of the appointment\n  * **tour_type:** The type of tour\n* **AppointmentShow:**\n  * **show_time:** The time the prospect showed up for their appointment\n  * **start_time:** The start time of the appointment\n  * **end_time:** The end time of the appointment\n  * **tour_type:** The type of tour\n  * **unit_ids:** The IDs of the units that were shown\n  * **unit_numbers:** The numbers of the units that were shown\n* **AppointmentNoShow:**\n  * **no_show_time:** The time the prospect didn't show up for their appointment\n  * **start_time:** The start time of the appointment\n  * **end_time:** The end time of the appointment\n  * **tour_type:** The type of tour\n* **AgentUpdated:**\n  * **old_agent_user_id:** The ID of the old leasing agent\n  * **old_agent_email:** The email of the old leasing agent\n  * **new_agent_user_id:** The ID of the new leasing agent\n  * **new_agent_email:** The email of the new leasing agent\n  * **start_time:** The start time of the appointment\n  * **end_time:** The end time of the appointment\n  * **tour_type:** The type of tour","operationId":"calendar_event_webhookcalendar_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"work_order_event":{"post":{"summary":"Work Order Event Webhook","description":"Whenever a work order is created, updated, cancelled, or completed in EliseAI,\nwe will post the event to your registered webhook. Use these events to keep\nan external system in sync with Elise-originated work-order changes. If that\nsystem also creates or updates work orders, it can send those changes back\nthrough the Maintenance API.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nEvent Types:\n* **WorkOrderCreated:** Posted whenever a new maintenance work order is created in EliseAI\n* **WorkOrderUpdated:** Posted whenever an existing work order is updated\n* **WorkOrderCancelled:** Posted whenever a work order transitions to `Closed`\n* **WorkOrderCompleted:** Posted whenever a work order transitions to `Completed`\n\nEach delivery includes an `X-Signature` header: an HMAC SHA-256 hex digest\nof the JSON request body, signed with your registered webhook secret.\n\n**Linking your work-order ID:** if you create a matching work order in your\nown system when you receive **WorkOrderCreated**, respond with a JSON body\ncontaining your system's work-order identifier and EliseAI will store it:\n\n```json\n{\"external_work_order_id\": \"WO-12345\"}\n```\n\nThe response body must be a JSON object with `external_work_order_id` as a\ntop-level key. String IDs are stored as-is after trimming whitespace; numeric\nIDs are accepted and stored as strings. Once linked, future webhook payloads\ninclude `external_work_order_id`, and you can update the work order through\n`PATCH /v2/maintenance/work_orders/external/{external_work_order_id}` without\ntracking the EliseAI work order ID.\n\nIf your integration will update EliseAI by `work_order_id` instead, returning\n`external_work_order_id` is optional. If you omit it, EliseAI still treats a\nsuccessful HTTP response as a successful webhook delivery, but your system's\nwork-order ID will remain unknown to EliseAI.\n\nIn some Elise-managed integration configurations, external work-order\nidentifiers are synchronized from the connected system. For those\nconfigurations, a `WorkOrderCreated` response does not replace the stored\nexternal ID. Use `work_order_id`, `elise_org_id`, and `elise_property_id`\nto correlate records across systems.\n\nFor **WorkOrderUpdated**, **WorkOrderCompleted**, and **WorkOrderCancelled**,\nEliseAI only uses the HTTP success/failure status. Response bodies for those\nevents are ignored.\n\nWork order events will include:\n* **event_id:** Unique identifier for the event. Use this for idempotency/deduplication.\n* **type:** The type of event that occurred\n* **event_date:** Date and time of the event\n* **elise_property_id:** Elise identifier for the property\n* **elise_org_id:** Elise identifier for the organization\n* **external_property_id:** External identifier for the property\n* **work_order_id:** Elise identifier for the work order (numeric ID as string)\n* **external_work_order_id:** Your external work-order identifier, if EliseAI has one\n* **unit_id:** Elise unit identifier (numeric ID as string), if applicable\n* **unit_number:** Unit number associated with the work order\n* **resident_uuid:** Resident UUID from the residents API (if applicable)\n* **status:** Current status. Possible values: `Started`, `Submitted`, `Scheduled`, `Paused`, `NotStarted`, `InProgress`, `OnHold`, `AwaitingParts`, `AwaitingVendor`, `ResidentDeniedAccess`, `DoneReadyToInvoice`, `DoneReadyForReview`, `Completed`, `Closed`.\n* **priority:** Priority level (Low, Medium, High, Emergency)\n* **category:** Category of the issue (e.g., Plumbing, Electrical, HVAC)\n* **description:** Description of the issue\n* **assignee_names:** Names of assigned technicians\n* **scheduled_time:** When work is scheduled\n* **completed_date:** When the work was completed\n* **notes:** General notes\n* **closing_notes:** Resolution notes\n* **created_by:** How the work order was created. Public values: `AI`, `Resident`, `Agent`, `API`, `PMS`, `Project`.","operationId":"work_order_event_webhookwork_order_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkOrderWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"lease_event":{"post":{"summary":"Lease Event Webhook","description":"Whenever a lease's status changes in EliseAI, we will post the event to your\nregistered webhook. Use these events to keep an external system in sync with\nlease lifecycle transitions. For the current lease snapshot at any time, use\n`GET /v2/leases/properties/{property_id}/leases`.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nEvent Types:\n* **lease_created:** Posted whenever a new lease is created (status goes from none to a value)\n* **lease_updated:** Posted whenever an existing lease's `lease_status` changes\n\nThis webhook fires only when `lease_status` changes. Non-status field updates\n(for example rent, contact info, or dates without a status change) do not\nproduce an event.\n\nEach delivery includes an `X-Signature` header: an HMAC SHA-256 hex digest\nof the JSON request body, signed with your registered webhook secret.\n\nFor AIP properties where EliseAI is the system of record, `external_lease_id`\nmatches the lease `id` returned by `GET /v2/leases/properties/{property_id}/leases`.\n\nLease events will include:\n* **event_id:** Unique identifier for the event. Use this for idempotency/deduplication.\n* **event_type:** The type of event that occurred. One of `lease_created` or `lease_updated`.\n* **event_date:** Date and time of the event\n* **elise_property_id:** Elise identifier for the property\n* **external_lease_id:** Lease identifier. For AIP leases this is the Elise lease id; for PMS-synced leases this is the external/PMS lease id.\n* **external_account_id:** External account identifier associated with the lease, when one exists\n* **pk_id:** Internal Elise lease primary key\n* **lease_status:** Current/new lease status after the change. Possible values: `Applicant`, `Renewing`, `Future`, `Current`, `Notice`, `Waitlist`, `Former`, `UnderEviction`, `Evicted`, `Cancelled`, `Collections`, `Other`.\n* **previous_lease_status:** Status before the change. Null when the lease is newly created.\n* **unit_id:** Elise unit identifier, if applicable\n* **unit_number:** Unit number associated with the lease\n* **start_date:** Lease start date\n* **end_date:** Lease end date\n* **move_out_date:** Move-out date, if set\n* **notice_date:** Notice-to-vacate date, if set\n* **is_active_lease:** Whether the lease is considered active after the change","operationId":"lease_event_webhooklease_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeaseWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"promise_to_pay_event":{"post":{"summary":"Promise To Pay Event","description":"Whenever a resident's promise to pay is created, decided, fulfilled, or cancelled\nin EliseAI, we will post the event to your registered webhook. A promise to pay is\na resident's commitment to pay a given amount within a given window. Use these\nevents to keep an external system in sync with collections activity EliseAI drives.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nEvent Types:\n* **promise_to_pay.created:** Posted whenever a resident makes a new promise to pay\n* **promise_to_pay.accepted:** Posted whenever EliseAI accepts the promise\n* **promise_to_pay.rejected:** Posted whenever EliseAI rejects the promise (for example when it falls past the escalation date, or partial payments are not allowed)\n* **promise_to_pay.fulfilled:** Posted whenever payment fulfilling the promise is received\n* **promise_to_pay.cancelled:** Posted whenever the promise is closed without being fulfilled (cancelled, edited, merged, or denied by an operator)\n\nEach delivery includes an `X-Signature` header: an HMAC SHA-256 hex digest\nof the JSON request body, signed with your registered webhook secret.\n\n`elise_property_id` is the `property_id` used by the Leases API, and\n`external_lease_id` identifies the lease the promise belongs to: for AIP properties\nwhere EliseAI is the system of record it matches the lease `id` returned by\n`GET /v2/leases/properties/{property_id}/leases`; for PMS-synced leases it is the\nexternal/PMS lease id. `resident_uuid` matches the resident UUID returned by the\nResidents API.\n\nPromise to pay events will include:\n* **event_id:** Unique identifier for the event. Use this for idempotency/deduplication.\n* **event_type:** The type of event that occurred. One of `promise_to_pay.created`, `promise_to_pay.accepted`, `promise_to_pay.rejected`, `promise_to_pay.fulfilled`, or `promise_to_pay.cancelled`.\n* **event_date:** Date and time of the event\n* **elise_property_id:** Elise identifier for the property\n* **external_lease_id:** Lease identifier the promise belongs to\n* **external_account_id:** External account identifier associated with the lease, when one exists\n* **resident_uuid:** Resident UUID from the residents API for the resident who made the promise\n* **amount_promised:** Amount the resident promised to pay\n* **to_pay_by_start:** Start of the window the resident promised to pay within\n* **to_pay_by_end:** End of the window the resident promised to pay within\n* **promise_accepted:** Whether EliseAI accepted the promise. False while the promise is rejected or awaiting an operator decision.\n* **date_fulfilled:** Date the promise was fulfilled by payment, if it has been fulfilled\n* **cancellation_reason:** Why the promise was closed without being fulfilled. Possible values: `merged`, `edited`, `new_promise_made_while_active`, `canceled_through_crm`, `rejected`, `handoff`, `denied_by_operator`, `resident_payment`, `dismissed_by_operator`, `other`.\n* **payment_plan_id:** Identifier of the payment plan this promise is an installment of. Null for a standalone promise to pay.","operationId":"promise_to_pay_eventpromise_to_pay_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromiseToPayWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"payment_plan_event":{"post":{"summary":"Payment Plan Event","description":"Whenever a resident's payment plan is created, updated, or cancelled in EliseAI,\nwe will post the event to your registered webhook. A payment plan is a set of\nscheduled installments, each of which is a promise to pay; individual installment\ntransitions are delivered through the `promise_to_pay_event` webhook.\n\nWebhooks can be registered at the organization level or the property level.\nPlease reach out to the EliseAI support team to register your webhooks.\n\nEvent Types:\n* **payment_plan.created:** Posted whenever a new payment plan is created for a lease\n* **payment_plan.updated:** Posted whenever an existing payment plan's installments or cadence change\n* **payment_plan.cancelled:** Posted whenever a payment plan is cancelled\n\nEach delivery includes an `X-Signature` header: an HMAC SHA-256 hex digest\nof the JSON request body, signed with your registered webhook secret.\n\n`elise_property_id` is the `property_id` used by the Leases API, and\n`external_lease_id` identifies the lease the plan belongs to: for AIP properties\nwhere EliseAI is the system of record it matches the lease `id` returned by\n`GET /v2/leases/properties/{property_id}/leases`; for PMS-synced leases it is the\nexternal/PMS lease id. `resident_uuid` matches the resident UUID returned by the\nResidents API.\n\nPayment plan events will include:\n* **event_id:** Unique identifier for the event. Use this for idempotency/deduplication.\n* **event_type:** The type of event that occurred. One of `payment_plan.created`, `payment_plan.updated`, or `payment_plan.cancelled`.\n* **event_date:** Date and time of the event\n* **elise_property_id:** Elise identifier for the property\n* **external_lease_id:** Lease identifier the payment plan belongs to\n* **resident_uuid:** Resident UUID from the residents API for the resident the plan belongs to\n* **payment_plan_id:** Identifier of the payment plan, shared by every installment of the plan\n* **cadence_type:** How the installments are spaced (for example `weekly` or `biweekly`). Null for a plan with no cadence.\n* **total_amount:** Sum of the promised amounts across all installments\n* **installments:** The installments of the plan, in chronological order. Each installment has the same shape as a `promise_to_pay_event` payload.","operationId":"payment_plan_eventpayment_plan_event_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentPlanWebhookEvent"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"servers":[{"url":"https://api.eliseai.com"}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://meetelise.us.auth0.com/authorize","tokenUrl":"https://meetelise.us.auth0.com/oauth/token","scopes":{}}}},"VendorBearer":{"type":"http","scheme":"bearer","description":"Vendor API Token"}},"schemas":{"WorkOrderStatus":{"type":"string","enum":["Paused","NotStarted","InProgress","OnHold","AwaitingParts","AwaitingVendor","ResidentDeniedAccess","Completed","Closed"],"title":"WorkOrderStatus","description":"Lifecycle status of a maintenance work order.\n\nThese are the public statuses exposed through the Maintenance API.\nCompleted and Closed are terminal states."},"PropertiesResponse":{"properties":{"properties":{"items":{"$ref":"#/components/schemas/Property"},"type":"array","title":"Properties","description":"Array of property objects"},"pagination":{"allOf":[{"$ref":"#/components/schemas/CursorMeta"}],"title":"Pagination","description":"Pagination details for navigating large result sets"}},"type":"object","required":["properties","pagination"],"title":"PropertiesResponse","description":"List of properties with pagination metadata.\nUsed for listing properties with filtering and pagination support.","example":{"properties":[{"id":"12345","name":"Sunrise Apartments","property_type":"multi_family","status":"active","address":{"street_address":"123 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"},"total_units":250,"external_ids":[{"source":"YardiVoyager","id_type":"property","external_id":"12345"}],"buildings":[]}],"pagination":{"next_cursor":"a3naIad30=","has_more":true}}},"UnitLeasingStatus":{"type":"string","enum":["available","application_hold","leased","on_notice","not_available","notice_application_hold","notice_leased"],"title":"UnitLeasingStatus","description":"An enumeration."},"AppointmentOutcome":{"type":"string","enum":["NoShow","Show"],"title":"AppointmentOutcome","description":"An enumeration."},"ExternalId":{"properties":{"source":{"type":"string","title":"Source","description":"Source system of the external ID","example":"YardiVoyager"},"id_type":{"type":"string","title":"Id Type","description":"Type of external ID","example":"property"},"external_id":{"type":"string","title":"External Id","description":"The external identifier value","example":"12345"}},"type":"object","required":["source","id_type","external_id"],"title":"ExternalId"},"PropertyLeadSource":{"properties":{"id":{"type":"string","title":"Id"},"source":{"type":"string","title":"Source"},"property_id":{"type":"string","title":"Property Id"},"active":{"type":"boolean","title":"Active"},"time_inactivated":{"type":"string","format":"date-time","title":"Time Inactivated"},"elise_vanity_number":{"type":"string","title":"Elise Vanity Number"},"utm_parameters":{"items":{"$ref":"#/components/schemas/UtmParameter"},"type":"array","title":"Utm Parameters","default":[]}},"type":"object","required":["id","source","property_id","active"],"title":"PropertyLeadSource","example":{"id":"123","source":"Apartments.com","property_id":"247389","active":true,"elise_vanity_number":"+15555555555","utm_parameters":[{"key":"utm_source","value":"zillow"}]}},"ExternalPriceMatrixContent":{"properties":{"dateAvailable":{"type":"string","title":"Dateavailable"},"rent":{"type":"number","title":"Rent"},"leaseTermLength":{"type":"integer","title":"Leasetermlength"},"price_token":{"type":"string","title":"Price Token"}},"type":"object","required":["dateAvailable","rent","leaseTermLength"],"title":"ExternalPriceMatrixContent"},"InquirySourceData":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the inquiry source","example":"Google Ads"},"session_time":{"type":"string","format":"date-time","title":"Session Time","description":"Timestamp of the session","example":"2026-02-22T21:25:37.797Z"},"tracking_url":{"type":"string","title":"Tracking Url","description":"Tracking URL for marketing attribution"}},"type":"object","required":["name","session_time"],"title":"InquirySourceData"},"IlsPropertyConfig":{"properties":{"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier.","example":"12345"},"elise_org_id":{"type":"string","title":"Elise Org Id","description":"Elise organization identifier that owns this property.","example":"85"},"property":{"allOf":[{"$ref":"#/components/schemas/IlsPropertyDetails"}],"title":"Property","description":"Property details."},"syndication":{"allOf":[{"$ref":"#/components/schemas/IlsSyndicationConfig"}],"title":"Syndication","description":"Syndication settings for this ILS."},"lead_routing":{"allOf":[{"$ref":"#/components/schemas/IlsLeadRouting"}],"title":"Lead Routing","description":"Lead delivery settings for this ILS."},"instant_tour":{"allOf":[{"$ref":"#/components/schemas/IlsInstantTourConfig"}],"title":"Instant Tour","description":"Instant tour booking settings for this ILS."},"authorization":{"allOf":[{"$ref":"#/components/schemas/IlsAuthorization"}],"title":"Authorization","description":"Authorization status for ILS configuration management."},"zillow_ai_assist":{"allOf":[{"$ref":"#/components/schemas/IlsZillowConfig"}],"title":"Zillow Ai Assist","description":"Zillow AI Assist details. Populated only when the authenticated vendor is Zillow."}},"type":"object","required":["elise_property_id","elise_org_id","property","syndication","lead_routing","instant_tour","authorization"],"title":"IlsPropertyConfig"},"CreateWorkOrderRequest":{"properties":{"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string). Preferred for phased communities. Do not provide for common-area work orders or requests with location_id.","example":"98765"},"unit_number":{"type":"string","title":"Unit Number","description":"Unit number where the work is needed (human-readable label). If unit_id is provided, unit_number is looked up automatically. Do not provide for common-area work orders or requests with location_id.","example":"318E"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API","example":"00000000-0000-4000-8000-000000000000"},"type":{"allOf":[{"$ref":"#/components/schemas/WorkOrderType"}],"description":"Classification of the work order","default":"Resident"},"issue_id":{"type":"string","title":"Issue Id","description":"Elise maintenance issue identifier","example":"plumbing/leak"},"description":{"type":"string","title":"Description","description":"Free-text description of the issue","example":"Leaking faucet in kitchen"},"priority":{"allOf":[{"$ref":"#/components/schemas/WorkOrderPriority"}],"description":"Urgency level. Defaults from issue_id metadata, then Medium."},"due_date":{"type":"string","format":"date-time","title":"Due Date","description":"Requested due date/time for the work (ISO 8601)"},"location_id":{"type":"integer","title":"Location Id","description":"Elise common-area/custom location ID. Required for custom-location work orders. Requests with location_id are treated as common-area work orders and cannot include unit_id or unit_number."},"external_work_order_id":{"type":"string","title":"External Work Order Id","description":"Your work-order identifier from your own system. When provided, EliseAI stores it and you can update this work order later by external ID without tracking the EliseAI work order ID. Must be unique within the property.","example":"WO-12345"}},"type":"object","required":["issue_id","description"],"title":"CreateWorkOrderRequest","description":"Request body for creating a new maintenance work order.\n\nRequired fields mirror the core maintenance UI fields: description,\nissue_id, and a location target. Common-area work orders, including\nrequests with location_id, cannot be associated with unit_id or unit_number."},"PropertySubBuilding":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the sub-building","example":"501"},"name":{"type":"string","title":"Name","description":"Sub-building display name","example":"Tower A"},"address":{"allOf":[{"$ref":"#/components/schemas/SubBuildingAddress"}],"title":"Address","description":"Street address for this sub-building"}},"type":"object","required":["id","name","address"],"title":"PropertySubBuilding","description":"A building within a property with its own mailing address."},"TaskWebhookEvent":{"properties":{"task_id":{"type":"string","title":"Task Id"},"type":{"$ref":"#/components/schemas/TaskEventType"},"task_type":{"type":"string","title":"Task Type"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"elise_conversation_id":{"type":"string","title":"Elise Conversation Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"elise_resident_id":{"type":"string","title":"Elise Resident Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"external_property_id":{"type":"string","title":"External Property Id"},"external_resident_id":{"type":"string","title":"External Resident Id"},"external_lease_id":{"type":"string","title":"External Lease Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"resolution_type":{"type":"string","title":"Resolution Type"},"resolution_user_id":{"type":"string","title":"Resolution User Id"},"resolution_user_email":{"type":"string","title":"Resolution User Email"},"resolution_user_name":{"type":"string","title":"Resolution User Name"},"domain":{"type":"string","title":"Domain"},"task_data":{"$ref":"#/components/schemas/TaskEventData"}},"type":"object","required":["task_id","type","task_type","event_date","elise_property_id"],"title":"TaskWebhookEvent"},"TextEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Text"],"title":"Type","default":"Text"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"sender":{"$ref":"#/components/schemas/SenderRole"},"message":{"type":"string","title":"Message"},"to_phone_number":{"type":"string","title":"To Phone Number"},"from_phone_number":{"type":"string","title":"From Phone Number"}},"type":"object","required":["event_id","event_date","sender","message"],"title":"TextEvent"},"WorkOrderListScope":{"type":"string","enum":["all","team"],"title":"WorkOrderListScope","description":"Which visible work orders to include in the list response.\n\nTEAM means the stored creator vendor matches the authenticated API vendor."},"PaymentPlanWebhookEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"event_type":{"type":"string","title":"Event Type","description":"Webhook event type. One of payment_plan.created, payment_plan.updated, payment_plan.cancelled.","example":"payment_plan.created"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-06-30T12:00:00Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Leases API.","example":"12345"},"external_lease_id":{"type":"string","title":"External Lease Id","description":"Lease identifier the payment plan belongs to. For AIP leases this is the Elise lease id returned as id by GET /v2/leases/properties/{property_id}/leases; for PMS-synced leases this is the external/PMS lease id.","example":"550e8400-e29b-41d4-a716-446655440000"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID of the resident the plan belongs to, as returned by the Residents API.","example":"7f1f0f6c-4c1a-4f4e-9a2e-9f4bbf6f1a11"},"payment_plan_id":{"type":"integer","title":"Payment Plan Id","description":"Identifier of the payment plan. Shared by every installment of the plan.","example":98765},"cadence_type":{"type":"string","title":"Cadence Type","description":"How the installments are spaced (for example weekly or biweekly). Null for a plan with no cadence.","example":"weekly"},"total_amount":{"type":"number","title":"Total Amount","description":"Sum of the promised amounts across all installments of the plan.","example":1500.5},"installments":{"items":{"$ref":"#/components/schemas/PromiseToPayWebhookEvent"},"type":"array","title":"Installments","description":"Installments of the plan, each a promise to pay, in chronological order."}},"type":"object","required":["event_id","event_type","event_date","elise_property_id","external_lease_id","total_amount"],"title":"PaymentPlanWebhookEvent"},"ProspectHandoffEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"Handoff","title":"Type","default":"Handoff"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"handoff_type":{"type":"string","title":"Handoff Type"},"handoff_reason":{"type":"string","title":"Handoff Reason"},"handoff_description":{"type":"string","title":"Handoff Description"},"handoff_message":{"type":"string","title":"Handoff Message"}},"type":"object","required":["event_id","event_date","elise_property_id","handoff_type"],"title":"ProspectHandoffEvent"},"MaintenanceWorkOrder":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for this work order","example":"12345"},"external_id":{"type":"string","title":"External Id","description":"Your external reference ID for this work order","example":"WO-12345"},"property_id":{"type":"string","title":"Property Id","description":"Elise property identifier","example":"12345"},"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string). Use this for phased communities with sub-buildings.","example":"98765"},"unit_number":{"type":"string","title":"Unit Number","description":"Unit number where the work is needed (human-readable label)","example":"318E"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API. Null for common area / inspection work orders.","example":"00000000-0000-4000-8000-000000000000"},"type":{"allOf":[{"$ref":"#/components/schemas/WorkOrderType"}],"description":"Classification of the work order"},"issue_id":{"type":"string","title":"Issue Id","description":"Elise maintenance issue identifier","example":"plumbing/leak"},"category":{"type":"string","title":"Category","description":"Display category derived from issue_id (e.g. Plumbing, Electrical, HVAC, Appliance, General)","example":"Plumbing"},"status":{"allOf":[{"$ref":"#/components/schemas/WorkOrderStatus"}],"description":"Current lifecycle status"},"priority":{"allOf":[{"$ref":"#/components/schemas/WorkOrderPriority"}],"description":"Urgency level"},"description":{"type":"string","title":"Description","description":"Free-text description of the issue","example":"Leaking faucet in kitchen"},"permission_to_enter":{"allOf":[{"$ref":"#/components/schemas/PermissionToEnter"}],"description":"Whether the maintenance team has permission to enter the unit","default":"pending"},"access_instructions":{"type":"string","title":"Access Instructions","description":"Resident-provided instructions for accessing the unit","example":"Dog in unit, please knock loudly"},"preferred_time_windows":{"allOf":[{"$ref":"#/components/schemas/PreferredTimeWindows"}],"title":"Preferred Time Windows","description":"Resident-preferred scheduling windows, when captured"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians","example":["John Smith","Jane Doe"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work (ISO 8601)"},"due_date":{"type":"string","format":"date-time","title":"Due Date","description":"Due date/time for the work (ISO 8601)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When the work order was created (ISO 8601)"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"When the work order was last modified (ISO 8601)"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"When the work was completed (ISO 8601, null if still open)"},"notes":{"type":"string","title":"Notes","description":"General notes from the maintenance team"},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution summary written when the work order is completed"},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["id","property_id","type","category","priority","created_by"],"title":"MaintenanceWorkOrder","description":"A maintenance work order returned by the API.\n\nRepresents a request for maintenance work on a residential unit or common\narea. Contains the full current state of the work order including status,\npriority, assignment, scheduling, and resolution details.","example":{"id":"12345","external_id":"WO-12345","property_id":"12345","unit_id":"98765","unit_number":"318E","type":"Resident","issue_id":"plumbing/leak","category":"Plumbing","status":"NotStarted","priority":"Medium","description":"Leaking faucet in kitchen","permission_to_enter":"pending","access_instructions":"Dog in unit, please knock loudly","preferred_time_windows":{"timezone":"America/New_York","rules":[{"type":"weekly","days_of_week":["MON","WED"],"start_time":"09:00","end_time":"12:00"}]},"created_at":"2026-03-24T12:00:00Z","updated_at":"2026-03-24T12:00:00Z","created_by":"Resident"}},"SubBuildingAddress":{"properties":{"street_address":{"type":"string","title":"Street Address","description":"Street number and name","example":"123 Main Street"},"city":{"type":"string","title":"City","description":"City name","example":"San Francisco"},"state":{"type":"string","title":"State","description":"State or province code","example":"CA"},"postal_code":{"type":"string","title":"Postal Code","description":"ZIP or postal code","example":"94105"},"country":{"type":"string","title":"Country","description":"ISO 3166-1 alpha-2 country code","default":"US","example":"US"}},"type":"object","required":["street_address","city","state","postal_code"],"title":"SubBuildingAddress","description":"Mailing address for a building (no unit / suite line)."},"AppointmentEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Appointment"],"title":"Type","default":"Appointment"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"tour_type":{"$ref":"#/components/schemas/TourType"},"appointment_time":{"type":"string","format":"date-time","title":"Appointment Time"},"appointment_id":{"type":"string","title":"Appointment Id"},"is_full_day":{"type":"boolean","title":"Is Full Day","default":false},"virtual_tour_link":{"type":"string","title":"Virtual Tour Link"}},"type":"object","required":["event_id","event_date","tour_type","appointment_time","appointment_id"],"title":"AppointmentEvent"},"PermissionToEnter":{"type":"string","enum":["pending","granted","not_applicable"],"title":"PermissionToEnter","description":"Whether the maintenance team has permission to enter the unit."},"PropertyType":{"type":"string","enum":["multi_family","single_family","other"],"title":"PropertyType","description":"Types of properties managed in the system"},"Activity":{"properties":{"event":{"$ref":"#/components/schemas/Event"},"prospect_id":{"type":"string","title":"Prospect Id"},"resident_id":{"type":"string","title":"Resident Id"},"responsibility":{"$ref":"#/components/schemas/Responsibility"}},"type":"object","required":["event","responsibility"],"title":"Activity"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"MarkAppointmentOutcomeRequest":{"properties":{"outcome":{"$ref":"#/components/schemas/AppointmentOutcome"},"outcome_time":{"type":"string","format":"date-time","title":"Outcome Time"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids","description":"Elise-specific unit IDs"},"t24_tour_mode":{"$ref":"#/components/schemas/T24TourMode"}},"type":"object","required":["outcome","outcome_time"],"title":"MarkAppointmentOutcomeRequest"},"SessionResponse":{"properties":{"session_token":{"type":"string","title":"Session Token"},"expires_in":{"type":"integer","title":"Expires In"},"site_id":{"type":"string","title":"Site Id"}},"type":"object","required":["session_token","expires_in","site_id"],"title":"SessionResponse"},"WorkOrderCreatedBy":{"type":"string","enum":["AI","Resident","Agent","API","PMS","Project"],"title":"WorkOrderCreatedBy","description":"Origin of the work order."},"CreateProspectAppointmentRequest":{"properties":{"prospect":{"$ref":"#/components/schemas/CreateProspectForAppointmentRequest"},"appointment":{"$ref":"#/components/schemas/AppointmentRequest"},"lead_note":{"type":"string","title":"Lead Note","description":"Optional note from the lead about the appointment"}},"type":"object","required":["prospect","appointment"],"title":"CreateProspectAppointmentRequest"},"CreateProspectAppointmentResponse":{"properties":{"prospect":{"$ref":"#/components/schemas/CreateProspectResponse"},"appointment":{"$ref":"#/components/schemas/AppointmentResponse"}},"type":"object","required":["prospect","appointment"],"title":"CreateProspectAppointmentResponse"},"EliseAI__prospects__model__types__ProspectStatus":{"type":"string","enum":["Inquiry","Applicant","Leased","Cancelled"],"title":"ProspectStatus","description":"An enumeration."},"ProspectOptInEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"OptIn","title":"Type","default":"OptIn"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"mediums":{"items":{"$ref":"#/components/schemas/Medium"},"type":"array"}},"type":"object","required":["event_id","event_date","elise_property_id","mediums"],"title":"ProspectOptInEvent"},"Resident":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the resident (UUID)","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"first_name":{"type":"string","maxLength":100,"minLength":1,"title":"First Name","description":"Resident's first name","example":"Emma"},"middle_name":{"type":"string","maxLength":100,"title":"Middle Name","description":"Resident's middle name","example":"Rose"},"last_name":{"type":"string","maxLength":100,"minLength":1,"title":"Last Name","description":"Resident's last name","example":"Johnson"},"email":{"type":"string","title":"Email","description":"Resident's primary email address","example":"emma.johnson@example.com"},"phone_numbers":{"items":{"$ref":"#/components/schemas/PhoneNumber"},"type":"array","title":"Phone Numbers","description":"List of resident's phone numbers"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When this resident record was created","example":"2023-12-15T10:30:00Z"},"created_by":{"type":"string","title":"Created By","description":"ID of user or system that created this record"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"When this resident record was last modified","example":"2024-01-01T14:20:00Z"},"updated_by":{"type":"string","title":"Updated By","description":"ID of user or system that last updated this record"},"deleted_at":{"type":"string","format":"date-time","title":"Deleted At","description":"When this resident was soft-deleted (null if active)"}},"type":"object","required":["id","first_name","last_name","created_at","created_by","updated_at","updated_by"],"title":"Resident","description":"A resident represents a person who lives or has lived in a property unit.\n\nResidents can have multiple lease relationships across different units and time periods.\nThis object contains their core contact information and identity details.","example":{"id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","first_name":"Emma","middle_name":"Rose","last_name":"Johnson","email":"emma.johnson@example.com","phone_numbers":[{"type":"CELL","number":"+14155552671","is_primary":true},{"type":"WORK","number":"+14155552672","is_primary":false}],"created_at":"2023-12-15T10:30:00Z","created_by":"usr_12345","updated_at":"2024-01-01T14:20:00Z","updated_by":"usr_12345"}},"WorkOrderType":{"type":"string","enum":["Resident","CommonArea"],"title":"WorkOrderType","description":"Classification of what the work order pertains to."},"PropertyEntityType":{"type":"string","enum":["PROPERTY","SUB_PROPERTY"],"title":"PropertyEntityType","description":"An enumeration."},"PropertyLookupResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the property","example":"12345"},"name":{"type":"string","title":"Name","description":"Property name for display","example":"Sunrise Apartments"},"property_type":{"allOf":[{"$ref":"#/components/schemas/PropertyType"}],"description":"Classification of the property"},"status":{"allOf":[{"$ref":"#/components/schemas/PropertyStatus"}],"description":"Current operational status"},"address":{"allOf":[{"$ref":"#/components/schemas/Address"}],"title":"Address","description":"Physical location of the property"},"total_units":{"type":"integer","minimum":0.0,"title":"Total Units","description":"Total number of units in the property","example":250},"organization_id":{"type":"string","title":"Organization Id","description":"Organization ID for the property","example":"6789"},"organization_name":{"type":"string","title":"Organization Name","description":"Organization name for the property","example":"Sunrise Residential"},"has_phases":{"type":"boolean","title":"Has Phases","description":"Whether the entities list contains a SUB_PROPERTY entity","default":false},"entities":{"items":{"$ref":"#/components/schemas/PropertyEntity"},"type":"array","title":"Entities","description":"Active PROPERTY and SUB_PROPERTY GL Catalog entities for this property"},"ils_email":{"type":"string","title":"Ils Email","description":"ILS lead email address for this property","example":"sunrise.12345@leads.eliseai.com"}},"type":"object","required":["id","name","property_type","status","address"],"title":"PropertyLookupResponse","description":"Property metadata returned from the external-id lookup endpoint.\n\nMirrors `Property`, minus `external_ids` — partners using the lookup endpoint\nalready know one external id, and we don't want to leak identifiers from\nother systems through this surface.","example":{"id":"12345","name":"Sunrise Apartments","property_type":"multi_family","status":"active","address":{"street_address":"123 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"},"total_units":250,"organization_id":"6789","organization_name":"Sunrise Residential","has_phases":false,"entities":[{"id":"018e2b7e-becf-7000-8000-00000000000f","name":"Sunrise Apartments","type":"PROPERTY","building_ids":[]}],"ils_email":"sunrise.12345@leads.eliseai.com"}},"IlsConfigResponse":{"properties":{"ils":{"type":"string","title":"Ils","description":"ILS associated with the authenticated vendor.","example":"zillow"},"properties":{"items":{"$ref":"#/components/schemas/IlsPropertyConfig"},"type":"array","title":"Properties","description":"Properties configured for the authenticated ILS vendor."},"cursor":{"type":"string","title":"Cursor","description":"Cursor for the next page of results. Omitted or null when there are no more pages.","example":"eyJsYXN0X2J1aWxkaW5nX2lkIjogMTIzNDV9"}},"type":"object","required":["ils","properties"],"title":"IlsConfigResponse"},"PropertyLookupListResponse":{"properties":{"properties":{"items":{"$ref":"#/components/schemas/PropertyLookupResponse"},"type":"array","title":"Properties","description":"Properties matching the (system, external_id) pair. Non-test names first, test-named buildings last."}},"type":"object","required":["properties"],"title":"PropertyLookupListResponse","description":"Wrapper around the list of properties returned by the lookup endpoint.\n\nThe lookup endpoint may resolve to more than one Elise building when partners\nhave onboarding overlap (e.g. a property migrated mid-integration). Buildings\nare filtered to production-only (active + launched + non-test management\ncompany) and ordered with test-named buildings last.","example":{"properties":[{"id":"12345","name":"Sunrise Apartments","property_type":"multi_family","status":"active","address":{"street_address":"123 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"},"total_units":250,"organization_id":"6789","organization_name":"Sunrise Residential","ils_email":"sunrise.12345@leads.eliseai.com"}]}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PmsType":{"type":"string","enum":["Stonehenge","Nestio","YardiVoyager","AvbSalesforce","AvbSFTPTransfer","RealPage","Entrata","EqrMri","EnCasa","RentManager","Funnel","EliseAip","EliseCrm","Resman","VenterraMits","OnSite","InvitationHomes","AppFolio","AIM","Darwin","Sylvan","AMH","Fortress","Progress","Amherst","Capreit","McKinley","Tricon","FirstKey","JcmMri","Centurion","Buildium","PlaygroundPMS"],"title":"PmsType","description":"An enumeration."},"NoShowEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["NoShow"],"title":"Type","default":"NoShow"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"appointment_id":{"type":"string","title":"Appointment Id"}},"type":"object","required":["event_id","event_date","appointment_id"],"title":"NoShowEvent"},"Medium":{"type":"string","enum":["EMAIL","SMS","VOICE","CHAT"],"title":"Medium","description":"An enumeration."},"IlsLeadRouting":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Whether lead routing is enabled for this property.","example":true},"destination_email":{"type":"string","title":"Destination Email","description":"Email address where leads from this ILS should be delivered.","example":"building.12345@leads.eliseai.com"}},"type":"object","required":["enabled"],"title":"IlsLeadRouting"},"Responsibility":{"type":"string","enum":["Leasing","Maintenance","Billing","Renewals","EmergencyMaintenance","Lockouts","SafetyAndSecurity","Concierge"],"title":"Responsibility","description":"An enumeration."},"TaskType":{"type":"string","enum":["ConfirmExpectedMoveIn","ConfirmExpectedMoveOut","CollectionsEscalationDay","EvictionRisk","PromiseToPayDecision","NeedsReply","InformationNeeded","MissedCall","FormerResidentDeactivated","CallBack","NoticeToVacate","LeaseGeneration","OptOut","ReminderTask","MentionTask","ToDoTask","AtlasTask","TourFollowUpTask","MissingOptIn","PreTourUnresponsive","PostTour","UnresponsiveLastChance","OptedOut","LostLead","LeadIntentLow","LeadIntentMedium","LeadIntentHigh","GenerateLeaseRenewalTask","MonthToMonthSelectionTask","ConfirmGeneratedLease","ConfirmGeneratedPacket","CounterSignLease","CounterSignPacket","ApplicationReviewTask","CertificationApplicationReviewTask","CertificationPacketComplianceReviewTask","ApplicationNeedsHelpTask","AffordableComplianceReviewTask","RentableItemInterestReviewTask","ResidentRentableItemRequestReviewTask","EvictionNoticeGeneration","EvictionNoticeGenerationV2","SignBeforeServingNotice","SignBeforeServingNoticeV2","ServeEvictionNotice","ServeEvictionNoticeV2","EvictionAccountStatusUpdate","GenerateLeaseTask","MissingPacketSignatoryContact","UtilitiesQuestion","DataUploadTask","ResmanRecurringChargeTask","AigtLocksKeys","SetTurnCompletedTask","CompleteMoveOutInspectionTask","CompleteStaffInspectionSectionsTask","MoveOutInspectionCompletedTask","PreventativeInspectionCompletedTask","PreMoveOutInspectionScheduledTask","PandadocCounterSignLease","AgentActionNeeded","ExpiredNotice","ExpiredNoticeV2","OccupiedUnitResidentNoticeTask","AddressLeaseAuditTransactionDiscrepancy","CancelApplicationTask","SignLeaseExpirationTask","RotationExpiration","RotationReviewReminder","APDocumentApproval","APHumanReview","APMentionTask","APInFlightPayoutReview","APReturnedPayoutReview","HapVarianceOutstanding","ApprovedRoommateTask","SubmitDepositInsuranceClaim","InsuranceClaimPaymentsMissing","RecordClaimResult","FlagForCollections","ManuallySignPacket","SodaReview","SodaAdjustmentReview","ApprovalRequired","ChangeRequested","PrintRecertificationNoticesTask","ScheduleTurnTask","OverdueTurnTask","OutstandingBalanceOutreach","ThirdPartyVerificationTask","EmailBounceBack","NeverEngagedRenewalCandidate","LostEngagementRenewalCandidate","PeriodCloseTask","RequestForInformation","NTVSave","EnvironmentalRecord","PestControlBedBug","AmenityPaymentCollectionSetup","AmenityBookingApproval","AmenityBookingDepositRefund","ChargeCodeMappingGap","LeaseRevisionRequest","RenewalOfferApproval","SendPendingRenewalOffers","DepositInsuranceInvitation","DepositInsuranceRejected","PetScreeningPetReview","PartialRenewalNTVPending","ConditionalApprovalRevisionRequest","ExistingResidentUnitTransferRequest","RenewalOfferSelectionConflict","HoldoverConflictsWithIncomingLease","RentableItemWaitlistEntryInWaiting","RentableItemMoveOutExtensionConflict","TourAssignedToOtherAgent","RecommendationOverrideRequest","FailedRentersInsurance","FindUnitTask"],"title":"TaskType","description":"An enumeration."},"IlsPropertyAddress":{"properties":{"street":{"type":"string","title":"Street","description":"Property street address.","example":"123 Main St"},"city":{"type":"string","title":"City","description":"Property city.","example":"San Francisco"},"state":{"type":"string","title":"State","description":"Property state or province.","example":"CA"},"postal_code":{"type":"string","title":"Postal Code","description":"Property postal code.","example":"94105"}},"type":"object","title":"IlsPropertyAddress"},"InstantTourStatus":{"type":"string","enum":["on","pending_on","off","pending_off"],"title":"InstantTourStatus","description":"An enumeration."},"ProspectOptOutEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"OptOut","title":"Type","default":"OptOut"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"mediums":{"items":{"$ref":"#/components/schemas/Medium"},"type":"array"}},"type":"object","required":["event_id","event_date","elise_property_id","mediums"],"title":"ProspectOptOutEvent"},"SenderRole":{"type":"string","enum":["lead","elise","agent","vendor"],"title":"SenderRole","description":"An enumeration."},"WorkOrderCreatedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"evt_123"},"type":{"type":"string","const":"WorkOrderCreated","title":"Type","description":"Sent when a new work order is created in EliseAI.","default":"WorkOrderCreated"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-07-14T22:15:30Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Maintenance API.","example":"856098"},"elise_org_id":{"type":"string","title":"Elise Org Id","description":"Elise organization identifier. Use this with elise_property_id and work_order_id to correlate the event across systems.","example":"12345"},"external_property_id":{"type":"string","title":"External Property Id","description":"Property identifier from the external integration setup, when configured.","example":"PMS-PROP-001"},"work_order_id":{"type":"string","title":"Work Order Id","description":"Elise work-order identifier. Use this when updating the work order by Elise ID.","example":"37002740"},"external_work_order_id":{"type":"string","title":"External Work Order Id","description":"Work-order identifier from the connected external system, when one has been supplied or synchronized. In some Elise-managed integration configurations, this identifier is synchronized from the connected system and a WorkOrderCreated response does not replace it. Correlate using work_order_id, elise_org_id, and elise_property_id.","example":"WO-12345"},"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string), when the work order is unit-scoped.","example":"1911721181"},"unit_number":{"type":"string","title":"Unit Number","description":"Human-readable unit number, when the work order is unit-scoped.","example":"01-05"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API, when the work order is resident-scoped.","example":"48924907-4841-4ab1-a36d-58eba931234d"},"status":{"type":"string","title":"Status","description":"Current lifecycle status. Possible values: Started, Submitted, Scheduled, Paused, NotStarted, InProgress, OnHold, AwaitingParts, AwaitingVendor, ResidentDeniedAccess, DoneReadyToInvoice, DoneReadyForReview, Completed, Closed.","example":"InProgress"},"priority":{"type":"string","title":"Priority","description":"Priority level. One of Low, Medium, High, or Emergency.","example":"Medium"},"category":{"type":"string","title":"Category","description":"Display category for the work-order issue.","example":"Plumbing"},"description":{"type":"string","title":"Description","description":"Free-text description of the maintenance issue.","example":"Leak under kitchen sink"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians, when assigned.","example":["Jane Technician"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work, when scheduled.","example":"2026-07-15T18:00:00Z"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"Completion date/time, when completed.","example":"2026-07-16T20:30:00Z"},"notes":{"type":"string","title":"Notes","description":"General work-order notes.","example":"Technician dispatched."},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution notes, when completed or closed.","example":"Replaced supply line."},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["event_id","event_date","elise_property_id","elise_org_id","work_order_id","status","priority","created_by"],"title":"WorkOrderCreatedEvent"},"ProspectTextEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"Text","title":"Type","default":"Text"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"message":{"type":"string","title":"Message"},"to_phone_number":{"type":"string","title":"To Phone Number"},"from_phone_number":{"type":"string","title":"From Phone Number"},"sender":{"type":"string","title":"Sender"}},"type":"object","required":["event_id","event_date","elise_property_id","message","to_phone_number","from_phone_number","sender"],"title":"ProspectTextEvent"},"PreferredTimeWindows":{"properties":{"timezone":{"type":"string","title":"Timezone","description":"Timezone for interpreting preferred scheduling windows","example":"America/New_York"},"rules":{"items":{"anyOf":[{"type":"string"},{"$ref":"#/components/schemas/PreferredTimeWindowRule"}]},"type":"array","title":"Rules","description":"Preferred scheduling window rules"}},"type":"object","title":"PreferredTimeWindows","description":"Resident-preferred scheduling windows captured with permission-to-enter."},"UtmParameter":{"properties":{"key":{"type":"string","title":"Key"},"value":{"type":"string","title":"Value"}},"type":"object","required":["key","value"],"title":"UtmParameter"},"MaxOccupancySettings":{"properties":{"max_occupants":{"type":"integer","title":"Max Occupants"},"occupant_age_threshold_months":{"type":"integer","title":"Occupant Age Threshold Months"}},"type":"object","required":["max_occupants","occupant_age_threshold_months"],"title":"MaxOccupancySettings"},"AppointmentResponse":{"properties":{"appointment_id":{"type":"string","title":"Appointment Id"},"tour_type":{"$ref":"#/components/schemas/TourType"},"appointment_time":{"type":"string","format":"date-time","title":"Appointment Time"},"status":{"$ref":"#/components/schemas/AppointmentStatus"}},"type":"object","required":["appointment_id","tour_type","appointment_time","status"],"title":"AppointmentResponse"},"VoiceEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Voice"],"title":"Type","default":"Voice"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"sender":{"type":"string","title":"Sender"},"summary":{"type":"string","title":"Summary"}},"type":"object","required":["event_id","event_date","sender","summary"],"title":"VoiceEvent"},"VendorChatSender":{"type":"string","enum":["lead","agent"],"title":"VendorChatSender","description":"An enumeration."},"Event":{"oneOf":[{"$ref":"#/components/schemas/AppointmentEvent"},{"$ref":"#/components/schemas/ShowEvent"},{"$ref":"#/components/schemas/NoShowEvent"},{"$ref":"#/components/schemas/AppointmentCanceledEvent"},{"$ref":"#/components/schemas/LeadNoteEvent"},{"$ref":"#/components/schemas/EmailEvent"},{"$ref":"#/components/schemas/TextEvent"},{"$ref":"#/components/schemas/VoiceEvent"},{"$ref":"#/components/schemas/StatusUpdatedEvent"},{"$ref":"#/components/schemas/AgentTakeoverEvent"},{"$ref":"#/components/schemas/EliseReactivatedEvent"},{"$ref":"#/components/schemas/OptOutEvent"},{"$ref":"#/components/schemas/OptInEvent"},{"$ref":"#/components/schemas/WebchatEvent"},{"$ref":"#/components/schemas/SurveyLinkEvent"},{"$ref":"#/components/schemas/IdVerificationStatusEvent"}],"title":"Event","description":"Note: Additional event types or fields may be added","discriminator":{"propertyName":"type","mapping":{"Appointment":"#/components/schemas/AppointmentEvent","Show":"#/components/schemas/ShowEvent","NoShow":"#/components/schemas/NoShowEvent","AppointmentCanceled":"#/components/schemas/AppointmentCanceledEvent","LeadNote":"#/components/schemas/LeadNoteEvent","Email":"#/components/schemas/EmailEvent","Text":"#/components/schemas/TextEvent","Voice":"#/components/schemas/VoiceEvent","StatusUpdated":"#/components/schemas/StatusUpdatedEvent","AgentTakeover":"#/components/schemas/AgentTakeoverEvent","EliseReactivated":"#/components/schemas/EliseReactivatedEvent","OptOut":"#/components/schemas/OptOutEvent","OptIn":"#/components/schemas/OptInEvent","Webchat":"#/components/schemas/WebchatEvent","SurveyLink":"#/components/schemas/SurveyLinkEvent","IdVerificationStatus":"#/components/schemas/IdVerificationStatusEvent"}}},"ExternalPriceMatrix":{"properties":{"prices":{"items":{"$ref":"#/components/schemas/ExternalPriceMatrixContent"},"type":"array","title":"Prices"}},"type":"object","required":["prices"],"title":"ExternalPriceMatrix"},"CreateWorkOrderResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the newly created work order","example":"12345"},"message":{"type":"string","title":"Message","description":"Human-readable confirmation","example":"Work order created successfully"}},"type":"object","required":["id","message"],"title":"CreateWorkOrderResponse","description":"Response returned after successfully creating a work order."},"TourType":{"type":"string","enum":["sgt","guided","virtual"],"title":"TourType","description":"An enumeration."},"ProspectWebhookEvent":{"anyOf":[{"$ref":"#/components/schemas/ProspectUpdateWebhookEvent"},{"$ref":"#/components/schemas/ProspectHandoffEvent"},{"$ref":"#/components/schemas/ProspectEmailEvent"},{"$ref":"#/components/schemas/ProspectTextEvent"},{"$ref":"#/components/schemas/ProspectVoiceAIEvent"},{"$ref":"#/components/schemas/ProspectOptOutEvent"},{"$ref":"#/components/schemas/ProspectOptInEvent"},{"$ref":"#/components/schemas/ProspectWebchatEvent"},{"$ref":"#/components/schemas/ProspectInternalNoteEvent"},{"$ref":"#/components/schemas/ProspectStatusChangeEvent"},{"$ref":"#/components/schemas/ProspectOwnerUpdateEvent"}],"title":"ProspectWebhookEvent"},"CreateProspectRequest":{"properties":{"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email","description":"Valid email address","example":"john.doe@example.com"},"phone":{"type":"string","title":"Phone","description":"Phone number in E.164 format (e.g. +12025550179)","example":"+12025550179"},"move_in_date":{"type":"string","format":"date","title":"Move In Date"},"bedrooms":{"type":"integer","minimum":0.0,"title":"Bedrooms","description":"Number of bedrooms prospect is interested in","example":2},"bathrooms":{"type":"integer","minimum":0.0,"title":"Bathrooms","description":"Number of bathrooms prospect is interested in","example":2},"minimum_budget":{"type":"integer","minimum":0.0,"title":"Minimum Budget","description":"Minimum monthly rent budget in USD","example":1500},"maximum_budget":{"type":"integer","minimum":0.0,"title":"Maximum Budget","description":"Maximum monthly rent budget in USD","example":2500},"min_lease_length":{"type":"integer","minimum":0.0,"title":"Min Lease Length","description":"Minimum desired lease term in months","example":12},"max_lease_length":{"type":"integer","minimum":0.0,"title":"Max Lease Length","description":"Maximum desired lease term in months","example":18},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id","description":"External vendor prospect IDIf provided, subsequent webhook events will include this ID.Vendor source is attributed to ID from API credentials","example":"etS123456"},"vendor_source":{"type":"string","title":"Vendor Source","description":"Vendor prospect id source.Field can only be set by internal EliseApi user, otherwise it is inferred through API credentials"},"unit_preference":{"items":{"type":"string"},"type":"array","title":"Unit Preference","description":"List of preferred unit numbers.","example":["101","202","305"]},"floorplan_preference":{"items":{"type":"string"},"type":"array","title":"Floorplan Preference","description":"List of preferred floorplan names.","example":["A1","B2","Studio"]},"tracking_url":{"type":"string","title":"Tracking Url","description":"Tracking URL for marketing attribution"},"new_inquiry_source_data":{"items":{"$ref":"#/components/schemas/InquirySourceData"},"type":"array","title":"New Inquiry Source Data","description":"List of inquiry sources with session and tracking information"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id","description":"Unique identifier for the prospect in Elise's system.","example":"c21b94e2-0280-415d-9d1e-091b547a0061"},"property_id":{"type":"string","title":"Property Id","description":"Unique identifier for the property in Elise's system. Required for vendors","example":"c21b94e2-0280-415d-9d1e-091b547a0061"},"source":{"type":"string","title":"Source","description":"The source or channel through which the prospect was acquired. Required for all, but pass-through for PMS and third-party property management companies.","example":"Zillow"},"external_prospect_id":{"type":"string","title":"External Prospect Id","description":"External prospect ID from property management system. Only allowed when request is sent from a PMS or third-party property management company. If provided, subsequent webhook events will include this ID.","example":"PMS123456"},"external_property_id":{"type":"string","title":"External Property Id","description":"External property ID from property management system. Only allowed when request is sent from a PMS or third-party property management company.","example":"property123"},"status":{"type":"string","title":"Status","description":"[DEPRECATED] Current status of the prospect in the application/leasing process. This should be updated by passing Status events.","example":"ApplicationStarted"},"events":{"items":{"$ref":"#/components/schemas/Event"},"type":"array","title":"Events","description":"List of events (appointments, notes, communications etc.) associated with this prospect creation"},"agent_notes":{"type":"string","title":"Agent Notes","description":"Notes about this prospect to include within EliseAI's Conversation View"}},"type":"object","title":"CreateProspectRequest"},"ResolutionType":{"type":"string","enum":["Replied","Ignored","Called","Accepted","Other"],"title":"ResolutionType","description":"An enumeration."},"IlsInstantTourConfig":{"properties":{"status":{"allOf":[{"$ref":"#/components/schemas/InstantTourStatus"}],"description":"Current instant tour booking status for this ILS.","example":"on"},"last_updated":{"type":"string","format":"date-time","title":"Last Updated","description":"When instant tour booking configuration was last updated.","example":"2026-06-12T04:00:00Z"},"touring_types":{"items":{"type":"string"},"type":"array","title":"Touring Types","description":"Tour types available for instant booking.","example":["In-Person","Self-Guided","Virtual"]},"availability_url":{"type":"string","title":"Availability Url","description":"URL vendors can use to retrieve appointment availability for this property.","example":"https://api.eliseai.com/v1/property/12345/appointments/availability"},"provider":{"type":"string","title":"Provider","description":"Instant tour provider reported by the ILS feed (e.g. who powers instant tour).","example":"tourit"},"tour_type":{"type":"string","title":"Tour Type","description":"Instant tour type reported by the ILS feed.","example":"self_guided"}},"type":"object","required":["status"],"title":"IlsInstantTourConfig"},"IlsZillowConfig":{"properties":{"ils_listing_id":{"type":"string","title":"Ils Listing Id","description":"ILS listing id matched to this property, if any.","example":"2049600000"},"ai_assist_status":{"allOf":[{"$ref":"#/components/schemas/ZillowAiAssistSummary"}],"title":"Ai Assist Status","description":"Zillow AI Assist status for this property."}},"type":"object","required":["ai_assist_status"],"title":"IlsZillowConfig"},"SurveyLinkType":{"type":"string","enum":["PostTourSurvey"],"title":"SurveyLinkType","description":"An enumeration."},"SyndicationStatus":{"type":"string","enum":["on","pending","failed","off"],"title":"SyndicationStatus","description":"An enumeration."},"CreateInternalNoteResponse":{"properties":{"note_id":{"type":"integer","title":"Note Id"}},"type":"object","required":["note_id"],"title":"CreateInternalNoteResponse"},"TaskEventData":{"properties":{},"type":"object","title":"TaskEventData"},"ProspectWebchatEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"Webchat","title":"Type","default":"Webchat"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"message":{"type":"string","title":"Message"},"sender":{"type":"string","title":"Sender"}},"type":"object","required":["event_id","event_date","elise_property_id","message","sender"],"title":"ProspectWebchatEvent"},"EliseReactivatedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["EliseReactivated"],"title":"Type","default":"EliseReactivated"},"event_date":{"type":"string","format":"date-time","title":"Event Date"}},"type":"object","required":["event_id","event_date"],"title":"EliseReactivatedEvent"},"TaskEventType":{"type":"string","enum":["TaskCreated","TaskClosed"],"title":"TaskEventType","description":"An enumeration."},"WorkOrderCancelledEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"evt_123"},"type":{"type":"string","const":"WorkOrderCancelled","title":"Type","description":"Sent when a work order transitions to Closed.","default":"WorkOrderCancelled"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-07-14T22:15:30Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Maintenance API.","example":"856098"},"elise_org_id":{"type":"string","title":"Elise Org Id","description":"Elise organization identifier. Use this with elise_property_id and work_order_id to correlate the event across systems.","example":"12345"},"external_property_id":{"type":"string","title":"External Property Id","description":"Property identifier from the external integration setup, when configured.","example":"PMS-PROP-001"},"work_order_id":{"type":"string","title":"Work Order Id","description":"Elise work-order identifier. Use this when updating the work order by Elise ID.","example":"37002740"},"external_work_order_id":{"type":"string","title":"External Work Order Id","description":"Work-order identifier from the connected external system, when one has been supplied or synchronized. In some Elise-managed integration configurations, this identifier is synchronized from the connected system and a WorkOrderCreated response does not replace it. Correlate using work_order_id, elise_org_id, and elise_property_id.","example":"WO-12345"},"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string), when the work order is unit-scoped.","example":"1911721181"},"unit_number":{"type":"string","title":"Unit Number","description":"Human-readable unit number, when the work order is unit-scoped.","example":"01-05"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API, when the work order is resident-scoped.","example":"48924907-4841-4ab1-a36d-58eba931234d"},"status":{"type":"string","title":"Status","description":"Current lifecycle status. Possible values: Started, Submitted, Scheduled, Paused, NotStarted, InProgress, OnHold, AwaitingParts, AwaitingVendor, ResidentDeniedAccess, DoneReadyToInvoice, DoneReadyForReview, Completed, Closed.","example":"InProgress"},"priority":{"type":"string","title":"Priority","description":"Priority level. One of Low, Medium, High, or Emergency.","example":"Medium"},"category":{"type":"string","title":"Category","description":"Display category for the work-order issue.","example":"Plumbing"},"description":{"type":"string","title":"Description","description":"Free-text description of the maintenance issue.","example":"Leak under kitchen sink"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians, when assigned.","example":["Jane Technician"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work, when scheduled.","example":"2026-07-15T18:00:00Z"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"Completion date/time, when completed.","example":"2026-07-16T20:30:00Z"},"notes":{"type":"string","title":"Notes","description":"General work-order notes.","example":"Technician dispatched."},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution notes, when completed or closed.","example":"Replaced supply line."},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["event_id","event_date","elise_property_id","elise_org_id","work_order_id","status","priority","created_by"],"title":"WorkOrderCancelledEvent"},"CalendarAgentUpdatedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"AgentUpdated","title":"Type","default":"AgentUpdated"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"calendar_event_id":{"type":"integer","title":"Calendar Event Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"event_source":{"type":"string","title":"Event Source"},"old_agent_user_id":{"type":"string","title":"Old Agent User Id"},"old_agent_email":{"type":"string","title":"Old Agent Email"},"new_agent_user_id":{"type":"string","title":"New Agent User Id"},"new_agent_email":{"type":"string","title":"New Agent Email"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"tour_type":{"type":"string","title":"Tour Type"}},"type":"object","required":["event_id","event_date","calendar_event_id","elise_property_id","start_time","end_time","tour_type"],"title":"CalendarAgentUpdatedEvent"},"CalendarWebhookEvent":{"anyOf":[{"$ref":"#/components/schemas/CalendarAppointmentScheduledEvent"},{"$ref":"#/components/schemas/CalendarAppointmentCancelledEvent"},{"$ref":"#/components/schemas/CalendarAppointmentShowEvent"},{"$ref":"#/components/schemas/CalendarAppointmentNoShowEvent"},{"$ref":"#/components/schemas/CalendarAgentUpdatedEvent"}],"title":"CalendarWebhookEvent"},"WorkOrderPriority":{"type":"string","enum":["Low","Medium","High","Emergency"],"title":"WorkOrderPriority","description":"Urgency level of a work order."},"CreateInternalNoteRequest":{"properties":{"elise_prospect_id":{"type":"string","title":"Elise Prospect Id","description":"Elise prospect ID. Provide exactly one of elise_prospect_id or elise_resident_id.","example":"c21b94e2-0280-415d-9d1e-091b547a0061"},"elise_resident_id":{"type":"integer","title":"Elise Resident Id","description":"Elise resident ID. Provide exactly one of elise_prospect_id or elise_resident_id.","example":12345},"note":{"type":"string","title":"Note","description":"Note body. Must be non-empty; max 2000 characters.","example":"Spoke with applicant — confirmed move-in date."},"user_id":{"type":"string","title":"User Id","description":"Author user ID. If provided, the note is attributed to that user; if omitted, the note is marked as an external (vendor) note with no human author.","example":"b53afbd2-973b-11ef-ba7c-1a68fe4c92b7"},"vendor_name":{"type":"string","title":"Vendor Name","description":"Optional source label shown as the note's author in the conversation thread when no author user_id is provided (e.g. the vendor or system that created it).","example":"Zillow"}},"type":"object","required":["note"],"title":"CreateInternalNoteRequest"},"LeadSourcesResponse":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/PropertyLeadSource"},"type":"array","title":"Sources"}},"type":"object","required":["sources"],"title":"LeadSourcesResponse"},"AppointmentStatus":{"type":"string","enum":["confirmed","cancelled"],"title":"AppointmentStatus","description":"An enumeration."},"VendorChatRequest":{"properties":{"sender":{"$ref":"#/components/schemas/VendorChatSender"},"message":{"type":"string","title":"Message"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"prospect_id":{"type":"string","title":"Prospect Id"}},"type":"object","required":["sender","message"],"title":"VendorChatRequest"},"PropertyStatus":{"type":"string","enum":["active","inactive"],"title":"PropertyStatus","description":"Current operational status of the property"},"EliseAI__elise_api__model__prospect__ProspectStatus":{"type":"string","enum":["ApplicationStarted","ApplicationCompleted","ApplicationApproved","ApplicationRejected","ApplicationCanceled","LeaseStarted","LeaseApproved","LeasePartiallyCompleted","LeaseCompleted"],"title":"ProspectStatus","description":"An enumeration."},"WorkOrderUpdatedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"evt_123"},"type":{"type":"string","const":"WorkOrderUpdated","title":"Type","description":"Sent when an existing work order is updated in EliseAI.","default":"WorkOrderUpdated"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-07-14T22:15:30Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Maintenance API.","example":"856098"},"elise_org_id":{"type":"string","title":"Elise Org Id","description":"Elise organization identifier. Use this with elise_property_id and work_order_id to correlate the event across systems.","example":"12345"},"external_property_id":{"type":"string","title":"External Property Id","description":"Property identifier from the external integration setup, when configured.","example":"PMS-PROP-001"},"work_order_id":{"type":"string","title":"Work Order Id","description":"Elise work-order identifier. Use this when updating the work order by Elise ID.","example":"37002740"},"external_work_order_id":{"type":"string","title":"External Work Order Id","description":"Work-order identifier from the connected external system, when one has been supplied or synchronized. In some Elise-managed integration configurations, this identifier is synchronized from the connected system and a WorkOrderCreated response does not replace it. Correlate using work_order_id, elise_org_id, and elise_property_id.","example":"WO-12345"},"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string), when the work order is unit-scoped.","example":"1911721181"},"unit_number":{"type":"string","title":"Unit Number","description":"Human-readable unit number, when the work order is unit-scoped.","example":"01-05"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API, when the work order is resident-scoped.","example":"48924907-4841-4ab1-a36d-58eba931234d"},"status":{"type":"string","title":"Status","description":"Current lifecycle status. Possible values: Started, Submitted, Scheduled, Paused, NotStarted, InProgress, OnHold, AwaitingParts, AwaitingVendor, ResidentDeniedAccess, DoneReadyToInvoice, DoneReadyForReview, Completed, Closed.","example":"InProgress"},"priority":{"type":"string","title":"Priority","description":"Priority level. One of Low, Medium, High, or Emergency.","example":"Medium"},"category":{"type":"string","title":"Category","description":"Display category for the work-order issue.","example":"Plumbing"},"description":{"type":"string","title":"Description","description":"Free-text description of the maintenance issue.","example":"Leak under kitchen sink"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians, when assigned.","example":["Jane Technician"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work, when scheduled.","example":"2026-07-15T18:00:00Z"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"Completion date/time, when completed.","example":"2026-07-16T20:30:00Z"},"notes":{"type":"string","title":"Notes","description":"General work-order notes.","example":"Technician dispatched."},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution notes, when completed or closed.","example":"Replaced supply line."},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["event_id","event_date","elise_property_id","elise_org_id","work_order_id","status","priority","created_by"],"title":"WorkOrderUpdatedEvent"},"UpdateWorkOrderRequest":{"properties":{"status":{"allOf":[{"$ref":"#/components/schemas/WorkOrderStatus"}],"description":"New lifecycle status"},"priority":{"allOf":[{"$ref":"#/components/schemas/WorkOrderPriority"}],"description":"New urgency level"},"issue_id":{"type":"string","title":"Issue Id","description":"Updated Elise maintenance issue identifier"},"description":{"type":"string","title":"Description","description":"Updated issue description"},"due_date":{"type":"string","format":"date-time","title":"Due Date","description":"Updated due date/time (ISO 8601)"}},"type":"object","title":"UpdateWorkOrderRequest","description":"Request body for updating an existing work order.\n\nAll fields are optional — only include the fields you want to change.\nStatus transitions are validated server-side; invalid transitions return 422."},"PhoneNumber":{"properties":{"type":{"allOf":[{"$ref":"#/components/schemas/PhoneNumberType"}],"description":"The type of phone number"},"number":{"type":"string","pattern":"^\\+[1-9]\\d{1,14}$","title":"Number","description":"Phone number in E.164 format","example":"+14155552671"},"is_primary":{"type":"boolean","title":"Is Primary","description":"Whether this is the primary contact number","default":false}},"type":"object","required":["type","number"],"title":"PhoneNumber","description":"A resident's phone number with type classification","example":{"type":"CELL","number":"+14155552671","is_primary":true}},"ZillowAiAssistStatus":{"type":"string","enum":["not_contracted","off","pending_off","match_failed","pending_on","on_no_traffic","on"],"title":"ZillowAiAssistStatus","description":"An enumeration."},"VirtualTourLinksResponse":{"properties":{"virtual_tour_links":{"additionalProperties":{"type":"string"},"type":"object","title":"Virtual Tour Links"}},"type":"object","required":["virtual_tour_links"],"title":"VirtualTourLinksResponse","description":"Response for virtual tour links update"},"Unit":{"properties":{"id":{"type":"string","title":"Id"},"unit_number":{"type":"string","title":"Unit Number"},"number_of_bedrooms":{"type":"integer","title":"Number Of Bedrooms"},"number_of_bathrooms":{"type":"number","title":"Number Of Bathrooms"},"square_footage":{"type":"integer","title":"Square Footage"},"floor":{"type":"integer","title":"Floor"},"floorplan_name":{"type":"string","title":"Floorplan Name"},"floorplan_url":{"type":"string","title":"Floorplan Url"},"availability_stage":{"type":"string","title":"Availability Stage"},"price_matrix":{"$ref":"#/components/schemas/ExternalPriceMatrix"},"virtual_tour_link":{"type":"string","title":"Virtual Tour Link"},"external_ids":{"items":{"$ref":"#/components/schemas/ExternalIdForUnit"},"type":"array","title":"External Ids"},"date_available":{"type":"string","format":"date","title":"Date Available"},"application_availability_status":{"type":"string","title":"Application Availability Status"},"market_rate_unit":{"type":"integer","title":"Market Rate Unit"},"rent":{"type":"integer","title":"Rent"},"amenities":{"items":{"type":"string"},"type":"array","title":"Amenities"},"sub_building_name":{"type":"string","title":"Sub Building Name"},"max_occupancy_settings":{"$ref":"#/components/schemas/MaxOccupancySettings"}},"type":"object","required":["id","unit_number","number_of_bedrooms","number_of_bathrooms","availability_stage"],"title":"Unit"},"UnitStatus":{"type":"string","enum":["ready","renovating","make_ready","occupied","model","offline"],"title":"UnitStatus","description":"An enumeration."},"ExternalIdForUnit":{"properties":{"source":{"type":"string","title":"Source"},"id_type":{"type":"string","title":"Id Type"},"external_id":{"type":"string","title":"External Id"}},"type":"object","required":["source","id_type","external_id"],"title":"ExternalIdForUnit"},"LeadNoteEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["LeadNote"],"title":"Type","default":"LeadNote"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"note":{"type":"string","title":"Note"}},"type":"object","required":["event_id","event_date","note"],"title":"LeadNoteEvent"},"CreateProspectForAppointmentRequest":{"properties":{"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email","description":"Valid email address","example":"john.doe@example.com"},"phone":{"type":"string","title":"Phone","description":"Phone number in E.164 format (e.g. +12025550179)","example":"+12025550179"},"move_in_date":{"type":"string","format":"date","title":"Move In Date"},"bedrooms":{"type":"integer","minimum":0.0,"title":"Bedrooms","description":"Number of bedrooms prospect is interested in","example":2},"bathrooms":{"type":"integer","minimum":0.0,"title":"Bathrooms","description":"Number of bathrooms prospect is interested in","example":2},"minimum_budget":{"type":"integer","minimum":0.0,"title":"Minimum Budget","description":"Minimum monthly rent budget in USD","example":1500},"maximum_budget":{"type":"integer","minimum":0.0,"title":"Maximum Budget","description":"Maximum monthly rent budget in USD","example":2500},"min_lease_length":{"type":"integer","minimum":0.0,"title":"Min Lease Length","description":"Minimum desired lease term in months","example":12},"max_lease_length":{"type":"integer","minimum":0.0,"title":"Max Lease Length","description":"Maximum desired lease term in months","example":18},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id","description":"External vendor prospect IDIf provided, subsequent webhook events will include this ID.Vendor source is attributed to ID from API credentials","example":"etS123456"},"vendor_source":{"type":"string","title":"Vendor Source","description":"Vendor prospect id source.Field can only be set by internal EliseApi user, otherwise it is inferred through API credentials"},"unit_preference":{"items":{"type":"string"},"type":"array","title":"Unit Preference","description":"List of preferred unit numbers.","example":["101","202","305"]},"floorplan_preference":{"items":{"type":"string"},"type":"array","title":"Floorplan Preference","description":"List of preferred floorplan names.","example":["A1","B2","Studio"]},"tracking_url":{"type":"string","title":"Tracking Url","description":"Tracking URL for marketing attribution"},"new_inquiry_source_data":{"items":{"$ref":"#/components/schemas/InquirySourceData"},"type":"array","title":"New Inquiry Source Data","description":"List of inquiry sources with session and tracking information"},"property_id":{"type":"string","title":"Property Id"},"source":{"type":"string","title":"Source"}},"type":"object","required":["property_id","source"],"title":"CreateProspectForAppointmentRequest"},"PromiseToPayWebhookEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"event_type":{"type":"string","title":"Event Type","description":"Webhook event type. One of promise_to_pay.created, promise_to_pay.accepted, promise_to_pay.rejected, promise_to_pay.fulfilled, promise_to_pay.cancelled.","example":"promise_to_pay.created"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-06-30T12:00:00Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Leases API.","example":"12345"},"external_lease_id":{"type":"string","title":"External Lease Id","description":"Lease identifier the promise belongs to. For AIP leases this is the Elise lease id returned as id by GET /v2/leases/properties/{property_id}/leases; for PMS-synced leases this is the external/PMS lease id.","example":"550e8400-e29b-41d4-a716-446655440000"},"external_account_id":{"type":"string","title":"External Account Id","description":"External account identifier associated with the lease, when one exists.","example":"A-1001"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID of the resident who made the promise, as returned by the Residents API.","example":"7f1f0f6c-4c1a-4f4e-9a2e-9f4bbf6f1a11"},"amount_promised":{"type":"number","title":"Amount Promised","description":"Amount the resident promised to pay, in the property's currency.","example":750.25},"to_pay_by_start":{"type":"string","format":"date-time","title":"To Pay By Start","description":"Start of the window the resident promised to pay within.","example":"2026-07-01T00:00:00Z"},"to_pay_by_end":{"type":"string","format":"date-time","title":"To Pay By End","description":"End of the window the resident promised to pay within.","example":"2026-07-05T23:59:59Z"},"promise_accepted":{"type":"boolean","title":"Promise Accepted","description":"Whether EliseAI accepted the promise. False while a promise is rejected or awaiting an operator decision.","default":false,"example":true},"date_fulfilled":{"type":"string","format":"date","title":"Date Fulfilled","description":"Date the promise was fulfilled by payment, when it has been fulfilled.","example":"2026-07-03"},"cancellation_reason":{"type":"string","title":"Cancellation Reason","description":"Why the promise was closed without being fulfilled. Possible values: merged, edited, new_promise_made_while_active, canceled_through_crm, rejected, handoff, denied_by_operator, resident_payment, dismissed_by_operator, other.","example":"canceled_through_crm"},"payment_plan_id":{"type":"integer","title":"Payment Plan Id","description":"Identifier of the payment plan this promise is an installment of. Null for a standalone promise to pay.","example":98765}},"type":"object","required":["event_id","event_type","event_date","elise_property_id","external_lease_id","amount_promised","to_pay_by_start","to_pay_by_end"],"title":"PromiseToPayWebhookEvent"},"WorkOrderCompletedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"evt_123"},"type":{"type":"string","const":"WorkOrderCompleted","title":"Type","description":"Sent when a work order transitions to Completed.","default":"WorkOrderCompleted"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-07-14T22:15:30Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Maintenance API.","example":"856098"},"elise_org_id":{"type":"string","title":"Elise Org Id","description":"Elise organization identifier. Use this with elise_property_id and work_order_id to correlate the event across systems.","example":"12345"},"external_property_id":{"type":"string","title":"External Property Id","description":"Property identifier from the external integration setup, when configured.","example":"PMS-PROP-001"},"work_order_id":{"type":"string","title":"Work Order Id","description":"Elise work-order identifier. Use this when updating the work order by Elise ID.","example":"37002740"},"external_work_order_id":{"type":"string","title":"External Work Order Id","description":"Work-order identifier from the connected external system, when one has been supplied or synchronized. In some Elise-managed integration configurations, this identifier is synchronized from the connected system and a WorkOrderCreated response does not replace it. Correlate using work_order_id, elise_org_id, and elise_property_id.","example":"WO-12345"},"unit_id":{"type":"string","title":"Unit Id","description":"Elise unit identifier (numeric ID as string), when the work order is unit-scoped.","example":"1911721181"},"unit_number":{"type":"string","title":"Unit Number","description":"Human-readable unit number, when the work order is unit-scoped.","example":"01-05"},"resident_uuid":{"type":"string","title":"Resident Uuid","description":"Resident UUID from the residents API, when the work order is resident-scoped.","example":"48924907-4841-4ab1-a36d-58eba931234d"},"status":{"type":"string","title":"Status","description":"Current lifecycle status. Possible values: Started, Submitted, Scheduled, Paused, NotStarted, InProgress, OnHold, AwaitingParts, AwaitingVendor, ResidentDeniedAccess, DoneReadyToInvoice, DoneReadyForReview, Completed, Closed.","example":"InProgress"},"priority":{"type":"string","title":"Priority","description":"Priority level. One of Low, Medium, High, or Emergency.","example":"Medium"},"category":{"type":"string","title":"Category","description":"Display category for the work-order issue.","example":"Plumbing"},"description":{"type":"string","title":"Description","description":"Free-text description of the maintenance issue.","example":"Leak under kitchen sink"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians, when assigned.","example":["Jane Technician"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work, when scheduled.","example":"2026-07-15T18:00:00Z"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"Completion date/time, when completed.","example":"2026-07-16T20:30:00Z"},"notes":{"type":"string","title":"Notes","description":"General work-order notes.","example":"Technician dispatched."},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution notes, when completed or closed.","example":"Replaced supply line."},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["event_id","event_date","elise_property_id","elise_org_id","work_order_id","status","priority","created_by"],"title":"WorkOrderCompletedEvent"},"CursorMeta":{"properties":{"next_cursor":{"type":"string","title":"Next Cursor","description":"Opaque cursor token for fetching the next page","example":"eyJpZCI6IjEyMyIsImRhdGUiOiIyMDI0LTAxLTAxVDE0OjIwOjAwWiJ9"},"has_more":{"type":"boolean","title":"Has More","description":"Indicates if more pages are available","example":true}},"type":"object","required":["has_more"],"title":"CursorMeta","description":"Cursor metadata for cursor-based pagination.\n\nUse the cursor token to fetch the next page of results. If null, there are no more pages.","example":{"next_cursor":"eyJpZCI6IjEyMyIsImRhdGUiOiIyMDI0LTAxLTAxVDE0OjIwOjAwWiJ9","has_more":true}},"PreferredTimeWindowRule":{"properties":{"type":{"type":"string","title":"Type","description":"Rule type, such as weekly, date_range, or one_off","example":"weekly"},"days_of_week":{"items":{"type":"string"},"type":"array","title":"Days Of Week","description":"Days of week for weekly rules","example":["MON","WED"]},"start_time":{"type":"string","title":"Start Time","description":"Start time for weekly or date-range rules","example":"09:00"},"end_time":{"type":"string","title":"End Time","description":"End time for weekly or date-range rules","example":"17:00"},"start_date":{"type":"string","title":"Start Date","description":"Start date for date-range rules","example":"2026-03-24"},"end_date":{"type":"string","title":"End Date","description":"End date for date-range rules","example":"2026-03-26"},"start":{"type":"string","title":"Start","description":"Start datetime for one-off rules","example":"2026-03-24T09:00:00"},"end":{"type":"string","title":"End","description":"End datetime for one-off rules","example":"2026-03-24T12:00:00"}},"type":"object","title":"PreferredTimeWindowRule","description":"A scheduling preference rule for when maintenance may enter the unit."},"ProspectOwnerUpdateEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"OwnerUpdate","title":"Type","default":"OwnerUpdate"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"previous_elise_prospect_owner_id":{"type":"string","title":"Previous Elise Prospect Owner Id"},"new_elise_prospect_owner_id":{"type":"string","title":"New Elise Prospect Owner Id"},"previous_elise_prospect_owner_email":{"type":"string","title":"Previous Elise Prospect Owner Email"},"new_elise_prospect_owner_email":{"type":"string","title":"New Elise Prospect Owner Email"}},"type":"object","required":["event_id","event_date","elise_property_id"],"title":"ProspectOwnerUpdateEvent"},"VirtualTourLinksRequest":{"properties":{"virtual_tour_links":{"additionalProperties":{"type":"string"},"type":"object","title":"Virtual Tour Links"}},"type":"object","required":["virtual_tour_links"],"title":"VirtualTourLinksRequest","description":"Request body for updating virtual tour links for multiple units","example":{"virtual_tour_links":{"123":"https://example.com/virtual-tour-123","456":"https://example.com/virtual-tour-456"}}},"Property":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the property","example":"12345"},"name":{"type":"string","title":"Name","description":"Property name for display","example":"Sunrise Apartments"},"property_type":{"allOf":[{"$ref":"#/components/schemas/PropertyType"}],"description":"Classification of the property"},"status":{"allOf":[{"$ref":"#/components/schemas/PropertyStatus"}],"description":"Current operational status"},"address":{"allOf":[{"$ref":"#/components/schemas/Address"}],"title":"Address","description":"Physical location of the property"},"total_units":{"type":"integer","minimum":0.0,"title":"Total Units","description":"Total number of units in the property","example":250},"external_ids":{"items":{"$ref":"#/components/schemas/ExternalId"},"type":"array","title":"External Ids","description":"List of external system identifiers for this property"},"organization_id":{"type":"string","title":"Organization Id","description":"Organization ID for the property. Denotes who manages the property","example":"6789"},"organization_name":{"type":"string","title":"Organization Name","description":"Organization name for the property","example":"Sunrise Residential"},"has_phases":{"type":"boolean","title":"Has Phases","description":"Whether the entities list contains a SUB_PROPERTY entity","default":false},"entities":{"items":{"$ref":"#/components/schemas/PropertyEntity"},"type":"array","title":"Entities","description":"Active PROPERTY and SUB_PROPERTY GL Catalog entities for this property"},"buildings":{"items":{"$ref":"#/components/schemas/PropertySubBuilding"},"type":"array","title":"Buildings","description":"Buildings at this property (such as towers or distinct addresses); empty when none are configured"}},"type":"object","required":["id","name","property_type","status","address"],"title":"Property","description":"A property represents a building or complex with residential units.\n\nThis is the top-level entity that contains units, has leases, and\nmanages resident relationships. All financial transactions and \noperational activities are associated with a property.","example":{"id":"12345","name":"Sunrise Apartments","property_type":"multi_family","status":"active","address":{"street_address":"123 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"},"total_units":250,"external_ids":[{"source":"YardiVoyager","id_type":"property","external_id":"12345"}],"organization_id":"6789","organization_name":"Sunrise Residential","has_phases":true,"entities":[{"id":"018e2b7e-becf-7000-8000-00000000000f","name":"Sunrise Apartments","type":"PROPERTY","building_ids":[]},{"id":"018e2b7e-becf-7000-8000-00000000000a","name":"Phase A","type":"SUB_PROPERTY","building_ids":["501"]}],"buildings":[{"id":"501","name":"Tower A","address":{"street_address":"125 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"}}]}},"ZillowAiAssistSummary":{"properties":{"status":{"allOf":[{"$ref":"#/components/schemas/ZillowAiAssistStatus"}],"description":"AI Assist status: not_contracted / off / pending_off / match_failed / pending_on / on_no_traffic / on.","example":"on"},"listing_matched":{"type":"boolean","title":"Listing Matched","description":"Whether Elise has successfully matched this property to a Zillow listing.","example":true},"in_zillow_feed":{"type":"boolean","title":"In Zillow Feed","description":"Whether the property is currently exported into the Zillow feed.","example":true},"receiving_traffic":{"type":"boolean","title":"Receiving Traffic","description":"Whether Zillow has begun routing prospect traffic to this property.","example":true},"product_level":{"type":"string","title":"Product Level","description":"Zillow AI Assist product level for the property, if enabled.","example":"standard"},"listing_url":{"type":"string","title":"Listing Url","description":"Public Zillow listing URL when a match exists.","example":"https://www.zillow.com/b/sunrise-apartments-san-francisco-ca-12345_zpid/"},"chat_enabled":{"type":"boolean","title":"Chat Enabled","description":"Whether Zillow reports Elise AI chat as enabled for the matched listing (from the Zillow feed).","default":false,"example":true}},"type":"object","required":["status","listing_matched","in_zillow_feed","receiving_traffic"],"title":"ZillowAiAssistSummary"},"AppointmentAvailability":{"properties":{"availability":{"additionalProperties":{"$ref":"#/components/schemas/TourTypeAvailability"},"type":"object","title":"Availability"},"timezone":{"type":"string","title":"Timezone"}},"type":"object","required":["availability","timezone"],"title":"AppointmentAvailability","example":{"availability":{"guided":{"available_tour_start_times":["2024-02-01T09:00:00-08:00","2024-02-02T09:00:00-08:00"],"tour_duration_minutes":45},"sgt":{"available_tour_start_times":["2024-02-01T10:30:00-08:00","2024-02-02T10:30:00-08:00"],"tour_duration_minutes":30}},"timezone":"America/Los_Angeles"}},"Pets":{"type":"string","enum":["Cats","Dogs","UnknownPetIdentity","NoPets"],"title":"Pets","description":"An enumeration."},"AppointmentCanceledEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["AppointmentCanceled"],"title":"Type","default":"AppointmentCanceled"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"appointment_id":{"type":"string","title":"Appointment Id"}},"type":"object","required":["event_id","event_date","appointment_id"],"title":"AppointmentCanceledEvent"},"UpdateWorkOrderByExternalIdRequest":{"properties":{"status":{"allOf":[{"$ref":"#/components/schemas/WorkOrderStatus"}],"description":"New lifecycle status"},"priority":{"allOf":[{"$ref":"#/components/schemas/WorkOrderPriority"}],"description":"New urgency level"},"issue_id":{"type":"string","title":"Issue Id","description":"Updated Elise maintenance issue identifier"},"description":{"type":"string","title":"Description","description":"Updated issue description"},"due_date":{"type":"string","format":"date-time","title":"Due Date","description":"Updated due date/time (ISO 8601)"},"property_id":{"type":"string","title":"Property Id","description":"Elise property identifier. Scopes the external_work_order_id lookup.","example":"12345"}},"type":"object","required":["property_id"],"title":"UpdateWorkOrderByExternalIdRequest","description":"Request body for updating a work order by a PMS external ID."},"ProspectVoiceAIEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"VoiceAI","title":"Type","default":"VoiceAI"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"to_phone_number":{"type":"string","title":"To Phone Number"},"from_phone_number":{"type":"string","title":"From Phone Number"},"voice_recording_url":{"type":"string","title":"Voice Recording Url"},"summary":{"type":"string","title":"Summary"}},"type":"object","required":["event_id","event_date","elise_property_id","to_phone_number","from_phone_number"],"title":"ProspectVoiceAIEvent"},"WebchatEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Webchat"],"title":"Type","default":"Webchat"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"sender":{"type":"string","title":"Sender"},"message":{"type":"string","title":"Message"}},"type":"object","required":["event_id","event_date","sender","message"],"title":"WebchatEvent"},"MarkAppointmentOutcomeResult":{"properties":{},"type":"object","title":"MarkAppointmentOutcomeResult"},"AppointmentRequest":{"properties":{"tour_type":{"$ref":"#/components/schemas/TourType"},"appointment_time":{"type":"string","format":"date-time","title":"Appointment Time"}},"type":"object","required":["tour_type","appointment_time"],"title":"AppointmentRequest"},"Address":{"properties":{"street_address":{"type":"string","title":"Street Address","description":"Street number and name","example":"123 Main Street"},"unit_number":{"type":"string","title":"Unit Number","description":"Unit/suite/apartment number if applicable","example":"Suite 100"},"city":{"type":"string","title":"City","description":"City name","example":"San Francisco"},"state":{"type":"string","title":"State","description":"State or province code","example":"CA"},"postal_code":{"type":"string","title":"Postal Code","description":"ZIP or postal code","example":"94105"},"country":{"type":"string","title":"Country","description":"ISO 3166-1 alpha-2 country code","default":"US","example":"US"}},"type":"object","required":["street_address","city","state","postal_code"],"title":"Address","description":"Physical address for a property.\n\nStructured address components support accurate geocoding and \nutility provider matching for billing integrations.","example":{"street_address":"123 Main Street","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"}},"TourTypeAvailability":{"properties":{"available_tour_start_times":{"items":{"type":"string","format":"date-time"},"type":"array","title":"Available Tour Start Times"},"tour_duration_minutes":{"type":"integer","title":"Tour Duration Minutes"}},"type":"object","required":["available_tour_start_times"],"title":"TourTypeAvailability","example":{"available_tour_start_times":["2024-02-01T09:00:00-08:00","2024-02-01T10:30:00-08:00","2024-02-02T09:00:00-08:00","2024-02-02T10:30:00-08:00"],"tour_duration_minutes":30}},"EliseProspect":{"properties":{"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"status":{"$ref":"#/components/schemas/EliseAI__prospects__model__types__ProspectStatus"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"},"preferred_layouts":{"items":{"type":"string"},"type":"array","title":"Preferred Layouts"},"preferred_units":{"items":{"type":"string"},"type":"array","title":"Preferred Units"},"primary_lead_source":{"type":"string","title":"Primary Lead Source"},"from_move_in_date":{"type":"string","format":"date","title":"From Move In Date"},"to_move_in_date":{"type":"string","format":"date","title":"To Move In Date"},"min_lease_length":{"type":"integer","title":"Min Lease Length"},"max_lease_length":{"type":"integer","title":"Max Lease Length"},"min_budget":{"type":"integer","title":"Min Budget"},"max_budget":{"type":"integer","title":"Max Budget"},"pets":{"items":{"$ref":"#/components/schemas/Pets"},"type":"array"},"pms_external_prospect_id":{"type":"string","title":"Pms External Prospect Id"},"pms_external_prospect_source":{"type":"string","title":"Pms External Prospect Source"},"external_property_id":{"type":"string","title":"External Property Id"},"prospect_time_created":{"type":"string","format":"date-time","title":"Prospect Time Created"}},"type":"object","required":["elise_prospect_id","elise_property_id"],"title":"EliseProspect"},"IlsPropertyDetails":{"properties":{"name":{"type":"string","title":"Name","description":"Property display name.","example":"The Elise Apartments"},"address":{"allOf":[{"$ref":"#/components/schemas/IlsPropertyAddress"}],"title":"Address","description":"Property Address."},"management_company_name":{"type":"string","title":"Management Company Name","description":"Management company associated with the property.","example":"Elise Property Management"},"pms_name":{"allOf":[{"$ref":"#/components/schemas/PmsType"}],"description":"Property management system used by this property.","example":"Entrata"},"external_id":{"type":"string","title":"External Id","description":"Property identifier in the external PMS.","example":"p123456"}},"type":"object","required":["name","address"],"title":"IlsPropertyDetails"},"UpdateAppointmentRequest":{"properties":{"tour_type":{"$ref":"#/components/schemas/TourType"},"appointment_time":{"type":"string","format":"date-time","title":"Appointment Time"}},"type":"object","title":"UpdateAppointmentRequest"},"ProspectStatusChangeEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"StatusChange","title":"Type","default":"StatusChange"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"status":{"$ref":"#/components/schemas/EliseAI__prospects__model__types__ProspectStatus"},"cancellation_reason":{"type":"string","title":"Cancellation Reason"},"cancellation_source":{"type":"string","title":"Cancellation Source"},"cancellation_user_id":{"type":"string","title":"Cancellation User Id"},"cancellation_time":{"type":"string","format":"date-time","title":"Cancellation Time"},"cancellation_notes":{"type":"string","title":"Cancellation Notes"},"application_started_time":{"type":"string","format":"date-time","title":"Application Started Time"},"application_completed_time":{"type":"string","format":"date-time","title":"Application Completed Time"},"application_approved_time":{"type":"string","format":"date-time","title":"Application Approved Time"},"lease_started_time":{"type":"string","format":"date-time","title":"Lease Started Time"},"lease_completed_time":{"type":"string","format":"date-time","title":"Lease Completed Time"},"lease_approved_time":{"type":"string","format":"date-time","title":"Lease Approved Time"},"leased_time":{"type":"string","format":"date-time","title":"Leased Time"}},"type":"object","required":["event_id","event_date","elise_property_id","status"],"title":"ProspectStatusChangeEvent"},"ListWorkOrdersResponse":{"properties":{"work_orders":{"items":{"$ref":"#/components/schemas/WorkOrderListItem"},"type":"array","title":"Work Orders","description":"Array of work order objects"},"pagination":{"allOf":[{"$ref":"#/components/schemas/CursorMeta"}],"title":"Pagination","description":"Pagination details for navigating large result sets"}},"type":"object","required":["work_orders","pagination"],"title":"ListWorkOrdersResponse","description":"List of work orders with pagination metadata.","example":{"work_orders":[{"id":"123456","unit_number":"318E","property_id":"12345","sub_building":"Phase 1","resident_ids":["00000000-0000-4000-8000-000000000000"],"issue_id":"plumbing/leak","category":"Plumbing","status":"InProgress","description":"Kitchen sink faucet drips constantly, getting worse over the past week","priority":"Medium","permission_to_enter":"granted","access_instructions":"Dog in unit, please knock loudly","preferred_time_windows":{"timezone":"America/New_York","rules":[{"type":"weekly","days_of_week":["MON","WED"],"start_time":"09:00","end_time":"12:00"}]},"assignee_names":["Jane Technician"],"scheduled_time":"2026-05-16T14:00:00Z","due_date":"2026-05-20T18:00:00Z","created_at":"2026-05-15T17:30:00Z","updated_at":"2026-05-16T14:00:00Z","completed_date":"2026-05-17T18:45:00Z","notes":"Technician scheduled.","closing_notes":"Replaced the leaking supply line.","created_by":"Resident"}],"pagination":{"has_more":false}}},"PropertyEntity":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the entity"},"name":{"type":"string","title":"Name","description":"Entity display name"},"type":{"allOf":[{"$ref":"#/components/schemas/PropertyEntityType"}],"description":"GL Catalog entity type"},"building_ids":{"items":{"type":"string"},"type":"array","title":"Building Ids","description":"Building IDs grouped under this entity"}},"type":"object","required":["id","name","type"],"title":"PropertyEntity","description":"An active GL Catalog entity associated with a property."},"StatusUpdatedEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["StatusUpdated"],"title":"Type","default":"StatusUpdated"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"status":{"$ref":"#/components/schemas/EliseAI__elise_api__model__prospect__ProspectStatus"}},"type":"object","required":["event_id","event_date","status"],"title":"StatusUpdatedEvent"},"IlsAuthorization":{"properties":{"ils_config_management_authorized":{"type":"boolean","title":"Ils Config Management Authorized","description":"Whether the management company has authorized this ILS to manage the property's ILS configuration at an organization level.","example":true},"authorized_by_name":{"type":"string","title":"Authorized By Name","description":"Name of the user who granted authorization.","example":"Jane Manager"},"authorized_by_email":{"type":"string","title":"Authorized By Email","description":"Email of the user who granted authorization.","example":"jane.manager@example.com"},"authorized_by_role":{"type":"string","title":"Authorized By Role","description":"Role of the user who granted authorization.","example":"Regional Manager"},"authorized_at":{"type":"string","format":"date-time","title":"Authorized At","description":"When authorization was granted.","example":"2026-06-01T12:00:00Z"}},"type":"object","required":["ils_config_management_authorized"],"title":"IlsAuthorization"},"IdVerificationStatusEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["IdVerificationStatus"],"title":"Type","default":"IdVerificationStatus"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"status":{"allOf":[{"$ref":"#/components/schemas/ProspectVerificationStatus"}],"description":"The verification status result","example":"SUCCESSFUL"},"provider":{"type":"string","title":"Provider","description":"The ID verification provider that performed the verification","example":"checkpoint"},"expiration_date":{"type":"string","format":"date-time","title":"Expiration Date","description":"When the verification expires (if applicable)","example":"2025-12-31T23:59:59Z"},"verification_id":{"type":"string","title":"Verification Id","description":"External verification ID from the provider","example":"chk_12345abcde"},"metadata":{"type":"object","title":"Metadata","description":"Provider-specific metadata and additional verification details"}},"type":"object","required":["event_id","event_date","status","provider"],"title":"IdVerificationStatusEvent"},"CalendarAppointmentNoShowEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"AppointmentNoShow","title":"Type","default":"AppointmentNoShow"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"calendar_event_id":{"type":"integer","title":"Calendar Event Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"event_source":{"type":"string","title":"Event Source"},"no_show_time":{"type":"string","title":"No Show Time"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"tour_type":{"type":"string","title":"Tour Type"}},"type":"object","required":["event_id","event_date","calendar_event_id","elise_property_id","no_show_time","start_time","end_time","tour_type"],"title":"CalendarAppointmentNoShowEvent"},"SurveyLinkEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["SurveyLink"],"title":"Type","default":"SurveyLink"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"survey_link":{"type":"string","title":"Survey Link"},"survey_link_type":{"$ref":"#/components/schemas/SurveyLinkType"}},"type":"object","required":["event_id","event_date","survey_link","survey_link_type"],"title":"SurveyLinkEvent"},"CalendarAppointmentShowEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"AppointmentShow","title":"Type","default":"AppointmentShow"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"calendar_event_id":{"type":"integer","title":"Calendar Event Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"event_source":{"type":"string","title":"Event Source"},"show_time":{"type":"string","title":"Show Time"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"tour_type":{"type":"string","title":"Tour Type"},"unit_ids":{"items":{"type":"string"},"type":"array","title":"Unit Ids"},"unit_numbers":{"items":{"type":"string"},"type":"array","title":"Unit Numbers"}},"type":"object","required":["event_id","event_date","calendar_event_id","elise_property_id","show_time","start_time","end_time","tour_type"],"title":"CalendarAppointmentShowEvent"},"CreateProspectResponse":{"properties":{"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"}},"type":"object","required":["elise_prospect_id"],"title":"CreateProspectResponse"},"Task":{"properties":{"id":{"type":"string","title":"Id"},"task_type":{"$ref":"#/components/schemas/TaskType"},"trigger_time":{"type":"string","format":"date-time","title":"Trigger Time"},"trigger_event_id":{"type":"string","title":"Trigger Event Id"},"resolution_user_email":{"type":"string","title":"Resolution User Email"},"resolution_time":{"type":"string","format":"date-time","title":"Resolution Time"},"resolution_type":{"$ref":"#/components/schemas/ResolutionType"},"responsibilities":{"items":{"$ref":"#/components/schemas/Responsibility"},"type":"array"},"prospect_id":{"type":"string","title":"Prospect Id"},"resident_id":{"type":"string","title":"Resident Id"}},"type":"object","required":["id","task_type","trigger_time","trigger_event_id"],"title":"Task"},"OptInEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["OptIn"],"title":"Type","default":"OptIn"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"mediums":{"items":{"$ref":"#/components/schemas/ConversationMedium"},"type":"array"}},"type":"object","required":["event_id","event_date","mediums"],"title":"OptInEvent"},"ProspectVerificationStatus":{"type":"string","enum":["NOT_STARTED","STARTED","FAILED","SUCCESSFUL","ERROR","EXPIRED","CANCELLED","PENDING_REVIEW"],"title":"ProspectVerificationStatus","description":"status of an id verification attempt. Currently, mirroring Plaid's status "},"WorkOrderWebhookEvent":{"anyOf":[{"$ref":"#/components/schemas/WorkOrderCreatedEvent"},{"$ref":"#/components/schemas/WorkOrderUpdatedEvent"},{"$ref":"#/components/schemas/WorkOrderCancelledEvent"},{"$ref":"#/components/schemas/WorkOrderCompletedEvent"}],"title":"WorkOrderWebhookEvent"},"LeaseWebhookEvent":{"properties":{"event_id":{"type":"string","title":"Event Id","description":"Unique identifier for this webhook event. Use for idempotency and deduplication.","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"event_type":{"type":"string","title":"Event Type","description":"Webhook event type. One of lease_created or lease_updated.","example":"lease_updated"},"event_date":{"type":"string","format":"date-time","title":"Event Date","description":"When EliseAI generated the event.","example":"2026-06-30T12:00:00Z"},"elise_property_id":{"type":"string","title":"Elise Property Id","description":"Elise property identifier. This is the property_id used by the Leases API.","example":"12345"},"external_lease_id":{"type":"string","title":"External Lease Id","description":"Lease identifier. For AIP leases this is the Elise lease id returned as id by GET /v2/leases/properties/{property_id}/leases; for PMS-synced leases this is the external/PMS lease id.","example":"550e8400-e29b-41d4-a716-446655440000"},"external_account_id":{"type":"string","title":"External Account Id","description":"External account identifier associated with the lease, when one exists.","example":"A-1001"},"pk_id":{"type":"integer","title":"Pk Id","description":"Internal Elise lease primary key.","example":1346963936},"lease_status":{"type":"string","title":"Lease Status","description":"Current/new lease status after the change. Possible values: Applicant, Renewing, Future, Current, Notice, Waitlist, Former, UnderEviction, Evicted, Cancelled, Collections, Other.","example":"Current"},"previous_lease_status":{"type":"string","title":"Previous Lease Status","description":"Lease status before this change. Null when the lease is newly created.","example":"Future"},"unit_number":{"type":"string","title":"Unit Number","description":"Human-readable unit number associated with the lease.","example":"101"},"unit_id":{"type":"integer","title":"Unit Id","description":"Elise unit identifier, when the lease is unit-scoped.","example":999},"start_date":{"type":"string","format":"date","title":"Start Date","description":"Lease start date.","example":"2026-01-01"},"end_date":{"type":"string","format":"date","title":"End Date","description":"Lease end date.","example":"2026-12-31"},"move_out_date":{"type":"string","format":"date","title":"Move Out Date","description":"Move-out date, when set.","example":"2026-12-15"},"notice_date":{"type":"string","format":"date","title":"Notice Date","description":"Notice-to-vacate date, when the resident has given notice.","example":"2026-11-01"},"is_active_lease":{"type":"boolean","title":"Is Active Lease","description":"Whether the lease is considered active after this change.","default":false,"example":true}},"type":"object","required":["event_id","event_type","event_date","elise_property_id","external_lease_id"],"title":"LeaseWebhookEvent"},"T24TourMode":{"type":"string","enum":["MobileApp","Web"],"title":"T24TourMode","description":"An enumeration."},"OptOutEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["OptOut"],"title":"Type","default":"OptOut"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"mediums":{"items":{"$ref":"#/components/schemas/ConversationMedium"},"type":"array"}},"type":"object","required":["event_id","event_date","mediums"],"title":"OptOutEvent"},"PhoneNumberType":{"type":"string","enum":["CELL","HOME","WORK","FAX","OTHER"],"title":"PhoneNumberType","description":"Phone number types"},"ConversationMedium":{"type":"string","enum":["EMAIL","SMS","VOICE"],"title":"ConversationMedium","description":"An enumeration."},"ProspectUpdateWebhookEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"ProspectUpdate","title":"Type","default":"ProspectUpdate"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"first_name":{"type":"string","title":"First Name"},"last_name":{"type":"string","title":"Last Name"},"email":{"type":"string","title":"Email"},"phone":{"type":"string","title":"Phone"},"earliest_move_in":{"type":"string","format":"date","title":"Earliest Move In"},"latest_move_in":{"type":"string","format":"date","title":"Latest Move In"},"min_lease_length":{"type":"integer","title":"Min Lease Length"},"max_lease_length":{"type":"integer","title":"Max Lease Length"},"layout_preference":{"items":{"type":"string"},"type":"array","title":"Layout Preference","default":[]},"unit_preference":{"items":{"type":"string"},"type":"array","title":"Unit Preference","default":[]},"floorplan_preference":{"items":{"type":"string"},"type":"array","title":"Floorplan Preference","default":[]},"pets":{"items":{"$ref":"#/components/schemas/Pets"},"type":"array","default":[]},"lead_sources":{"items":{"type":"string"},"type":"array","title":"Lead Sources","default":[]},"first_contact_type":{"type":"string","title":"First Contact Type"},"is_general_property":{"type":"boolean","title":"Is General Property","default":false},"is_new_prospect":{"type":"boolean","title":"Is New Prospect"},"elise_contact_id":{"type":"string","title":"Elise Contact Id"},"elise_contact_link":{"type":"string","title":"Elise Contact Link"},"prospect_time_created":{"type":"string","format":"date-time","title":"Prospect Time Created"}},"type":"object","required":["event_id","event_date","elise_property_id"],"title":"ProspectUpdateWebhookEvent"},"AgentTakeoverEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["AgentTakeover"],"title":"Type","default":"AgentTakeover"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"reason":{"type":"string","title":"Reason"}},"type":"object","required":["event_id","event_date"],"title":"AgentTakeoverEvent"},"WorkOrderListItem":{"properties":{"id":{"type":"string","title":"Id","description":"Unique Elise identifier for this work order","example":"123456"},"unit_number":{"type":"string","title":"Unit Number","description":"Unit number where the work is needed","example":"318E"},"property_id":{"type":"string","title":"Property Id","description":"Elise property identifier for this work order","example":"12345"},"sub_building":{"type":"string","title":"Sub Building","description":"Sub-building name for phased communities, when present","example":"Phase 1"},"resident_ids":{"items":{"type":"string"},"type":"array","title":"Resident Ids","description":"Elise public resident UUIDs linked to this work order. Empty when no residents are linked.","example":["00000000-0000-4000-8000-000000000000"]},"issue_id":{"type":"string","title":"Issue Id","description":"Elise maintenance issue taxonomy identifier","example":"plumbing/leak"},"category":{"type":"string","title":"Category","description":"Resident-facing issue category name","example":"Plumbing"},"status":{"allOf":[{"$ref":"#/components/schemas/WorkOrderStatus"}],"description":"Current public lifecycle status","example":"InProgress"},"description":{"type":"string","title":"Description","description":"Free-text description of the issue","example":"Kitchen sink faucet drips constantly, getting worse over the past week"},"priority":{"allOf":[{"$ref":"#/components/schemas/WorkOrderPriority"}],"description":"Urgency level"},"permission_to_enter":{"allOf":[{"$ref":"#/components/schemas/PermissionToEnter"}],"description":"Whether the maintenance team has permission to enter the unit","default":"pending"},"access_instructions":{"type":"string","title":"Access Instructions","description":"Resident-provided instructions for accessing the unit","example":"Dog in unit, please knock loudly"},"preferred_time_windows":{"allOf":[{"$ref":"#/components/schemas/PreferredTimeWindows"}],"title":"Preferred Time Windows","description":"Resident-preferred scheduling windows, when captured"},"assignee_names":{"items":{"type":"string"},"type":"array","title":"Assignee Names","description":"Names of assigned technicians","example":["Jane Technician"]},"scheduled_time":{"type":"string","format":"date-time","title":"Scheduled Time","description":"Scheduled date/time for the work (ISO 8601)"},"due_date":{"type":"string","format":"date-time","title":"Due Date","description":"Due date/time for the work (ISO 8601)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When the work order was created (ISO 8601)"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"When the work order was last modified (ISO 8601)"},"completed_date":{"type":"string","format":"date-time","title":"Completed Date","description":"When the work was completed (ISO 8601, null if still open)"},"notes":{"type":"string","title":"Notes","description":"General work-order notes"},"closing_notes":{"type":"string","title":"Closing Notes","description":"Resolution notes, when completed or closed"},"created_by":{"allOf":[{"$ref":"#/components/schemas/WorkOrderCreatedBy"}],"description":"How the work order was created.\n\nValues:\n- `AI`: Created by Elise MaintenanceAI.\n- `Resident`: Created by a resident through the Resident App.\n- `Agent`: Created by your team in EliseCRM, the Maintenance App, or the Maintenance Web Portal.\n- `API`: Created through this public API.\n- `PMS`: Synced from your property management system.\n- `Project`: Created from an Elise maintenance project.\n"}},"type":"object","required":["id","priority","created_by"],"title":"WorkOrderListItem","description":"A compact maintenance work order returned by the list endpoint.","example":{"id":"123456","unit_number":"318E","property_id":"12345","sub_building":"Phase 1","resident_ids":["00000000-0000-4000-8000-000000000000"],"issue_id":"plumbing/leak","category":"Plumbing","status":"InProgress","description":"Kitchen sink faucet drips constantly, getting worse over the past week","priority":"Medium","permission_to_enter":"granted","access_instructions":"Dog in unit, please knock loudly","preferred_time_windows":{"timezone":"America/New_York","rules":[{"type":"weekly","days_of_week":["MON","WED"],"start_time":"09:00","end_time":"12:00"}]},"assignee_names":["Jane Technician"],"scheduled_time":"2026-05-16T14:00:00Z","due_date":"2026-05-20T18:00:00Z","created_at":"2026-05-15T17:30:00Z","updated_at":"2026-05-16T14:00:00Z","completed_date":"2026-05-17T18:45:00Z","notes":"Technician scheduled.","closing_notes":"Replaced the leaking supply line.","created_by":"Resident"}},"UnitsResponse":{"properties":{"units":{"items":{"$ref":"#/components/schemas/UnitV2WithEntity"},"type":"array","title":"Units","description":"Array of unit objects"},"pagination":{"allOf":[{"$ref":"#/components/schemas/CursorMeta"}],"title":"Pagination","description":"Pagination details for navigating large result sets"}},"type":"object","required":["units","pagination"],"title":"UnitsResponse","description":"List of units with pagination metadata."},"ProspectInternalNoteEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"InternalNote","title":"Type","default":"InternalNote"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"message":{"type":"string","title":"Message"},"sender":{"type":"string","title":"Sender"},"mentioned_users":{"items":{"type":"string"},"type":"array","title":"Mentioned Users"},"mentioned_team":{"type":"integer","title":"Mentioned Team"}},"type":"object","required":["event_id","event_date","elise_property_id","message"],"title":"ProspectInternalNoteEvent"},"IlsSyndicationConfig":{"properties":{"status":{"allOf":[{"$ref":"#/components/schemas/SyndicationStatus"}],"description":"Current syndication status for this ILS.","example":"on"},"property_feed_url":{"type":"string","title":"Property Feed Url","description":"MITS feed URL for the property when syndication is enabled.","example":"https://api.eliseai.com/v1/property/12345/mits5.xml"}},"type":"object","required":["status"],"title":"IlsSyndicationConfig"},"ProspectEmailEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"Email","title":"Type","default":"Email"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"vendor_prospect_id":{"type":"string","title":"Vendor Prospect Id"},"partner_application_id":{"type":"string","title":"Partner Application Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"subject":{"type":"string","title":"Subject"},"message":{"type":"string","title":"Message"},"to_addresses":{"items":{"type":"string"},"type":"array","title":"To Addresses"},"cc_addresses":{"items":{"type":"string"},"type":"array","title":"Cc Addresses"},"from_address":{"type":"string","title":"From Address"},"sender":{"type":"string","title":"Sender"}},"type":"object","required":["event_id","event_date","elise_property_id","subject","message","to_addresses","cc_addresses","from_address","sender"],"title":"ProspectEmailEvent"},"CalendarAppointmentScheduledEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"AppointmentScheduled","title":"Type","default":"AppointmentScheduled"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"calendar_event_id":{"type":"integer","title":"Calendar Event Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"event_source":{"type":"string","title":"Event Source"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"tour_type":{"type":"string","title":"Tour Type"},"leasing_agent_app_user_id":{"type":"string","title":"Leasing Agent App User Id"},"leasing_agent_email":{"type":"string","title":"Leasing Agent Email"}},"type":"object","required":["event_id","event_date","calendar_event_id","elise_property_id","start_time","end_time","tour_type"],"title":"CalendarAppointmentScheduledEvent"},"CalendarAppointmentCancelledEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","const":"AppointmentCancelled","title":"Type","default":"AppointmentCancelled"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"calendar_event_id":{"type":"integer","title":"Calendar Event Id"},"elise_property_id":{"type":"string","title":"Elise Property Id"},"external_property_id":{"type":"string","title":"External Property Id"},"elise_prospect_id":{"type":"string","title":"Elise Prospect Id"},"external_prospect_id":{"type":"string","title":"External Prospect Id"},"conversation_link":{"type":"string","title":"Conversation Link"},"event_source":{"type":"string","title":"Event Source"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"tour_type":{"type":"string","title":"Tour Type"}},"type":"object","required":["event_id","event_date","calendar_event_id","elise_property_id","start_time","end_time","tour_type"],"title":"CalendarAppointmentCancelledEvent"},"PropertyLookupSystem":{"type":"string","enum":["RentCafe","YardiVoyager","Entrata","ResMan","RealPage","AppFolio","Knock","Funnel"],"title":"PropertyLookupSystem","description":"External systems accepted by the property-lookup endpoint.\n\nLookup paths:\n\n* `RentCafe` — matched against\n  `building_pricing_avails_config.source_specific_config['RentCafe'].rent_cafe_property_ids`\n  (used by Yardi syndication partners that only know the RentCafe property id).\n\n* `YardiVoyager`, `Entrata`, `ResMan`, `RealPage`, `AppFolio` — matched\n  against the union of two paths:\n    - `building_details.external_crm_id` → filtered to candidates whose\n      effective CRM (`get_crm_setup`) matches the requested system. For\n      `YardiVoyager` the CRM-side identity is `RentCafe` (Yardi's\n      leasing front-end); for `RealPage` it is `ILM`.\n    - `building_details.external_ids` (text[]) → filtered to candidates\n      whose effective PMS (`get_pms_setup`) matches the requested system.\n\n* `Knock`, `Funnel` — CRM-only systems. Matched against\n  `building_details.external_crm_id` and filtered by effective CRM type\n  (no PMS-side lookup is performed for these)."},"EmailEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Email"],"title":"Type","default":"Email"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"sender":{"$ref":"#/components/schemas/SenderRole"},"subject":{"type":"string","title":"Subject"},"message":{"type":"string","title":"Message"},"to_addresses":{"items":{"type":"string"},"type":"array","title":"To Addresses"},"cc_addresses":{"items":{"type":"string"},"type":"array","title":"Cc Addresses"},"from_address":{"type":"string","title":"From Address"}},"type":"object","required":["event_id","event_date","sender","subject","message"],"title":"EmailEvent"},"ShowEvent":{"properties":{"event_id":{"type":"string","title":"Event Id"},"type":{"type":"string","enum":["Show"],"title":"Type","default":"Show"},"event_date":{"type":"string","format":"date-time","title":"Event Date"},"appointment_id":{"type":"string","title":"Appointment Id"},"access_code":{"type":"string","title":"Access Code"}},"type":"object","required":["event_id","event_date"],"title":"ShowEvent"},"UnitV2WithEntity":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the unit"},"property_id":{"type":"string","title":"Property Id","description":"ID of the property this unit belongs to"},"unit_number":{"type":"string","title":"Unit Number","description":"Unit number for display and mail delivery"},"building_id":{"type":"string","title":"Building Id","description":"ID of the building this unit belongs to (matches `buildings[].id` on GET /v2/properties/{property_id}); null when not scoped to a building","example":"501"},"entity_id":{"type":"string","title":"Entity Id","description":"Active GL Catalog entity containing this unit, when available"},"address":{"allOf":[{"$ref":"#/components/schemas/Address"}],"title":"Address","description":"Physical location of the property"},"bedrooms":{"type":"integer","minimum":0.0,"title":"Bedrooms","description":"Number of bedrooms"},"bathrooms":{"type":"number","minimum":0.0,"title":"Bathrooms","description":"Number of bathrooms"},"square_feet":{"type":"integer","exclusiveMinimum":0.0,"title":"Square Feet","description":"Unit square footage"},"floor":{"type":"integer","minimum":0.0,"title":"Floor","description":"Floor number (ground floor = 1)"},"building_name":{"type":"string","title":"Building Name","description":"Building name or identifier"},"floor_plan":{"type":"string","title":"Floor Plan","description":"Name of the floor plan"},"floor_plan_id":{"type":"string","title":"Floor Plan Id","description":"ID of the associated floor plan"},"unit_leasing_status":{"allOf":[{"$ref":"#/components/schemas/UnitLeasingStatus"}],"description":"Leasing status of the unit"},"unit_status":{"allOf":[{"$ref":"#/components/schemas/UnitStatus"}],"description":"Physical status of the unit"},"available_date":{"type":"string","format":"date","title":"Available Date","description":"Date unit becomes available"},"market_rent":{"type":"number","title":"Market Rent","description":"Market rent amount (not meant for display on websites)"},"asking_rent":{"type":"number","title":"Asking Rent","description":"Current lowest marketed offer on the unit"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"When this unit was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"When this unit was last modified"}},"type":"object","required":["id","property_id","unit_number","address","bedrooms","bathrooms","created_at","updated_at"],"title":"UnitV2WithEntity","description":"Partner unit response with optional posting-entity enrichment."}}}}