Skip To Main Content
All modules

Properties

Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.

Propertyproperty

A home or unit the user owns, rents, or leases out. The same operations reach tenants and leases on a leased-out property (type 'tenancy') and repair, improvement, inspection or maintenance entries (type 'maintenance').

properties_findFindthrough vritto_find

Read Properties: one record by id, or properties, tenancies or maintenance entries filtered by property, tenure, status, dates or text. No filter gives a compact summary: counts plus lean property and recent maintenance rows. detail 'full' for financials, appliances + recalls, deadlines and tenancies.

Note: No filter returns a compact summary; type 'maintenance' with propertyId and from/to reads a period's upkeep.

FieldTypeDescription
typeone of property, tenancy, maintenanceWhich records to read; omit for every type.
idstringReturn just this record.
propertyIdstringTenancies or maintenance of this property.
tenureone of owned, rented, leased_outType 'property': only owned, rented or leased_out ones.
statusone of upcoming, current, pastType 'tenancy': only upcoming, current or past ones.
fromstringType 'maintenance': earliest date, inclusive.
tostringType 'maintenance': latest date, inclusive. ALWAYS pass from/to when the question concerns a period.
querystringText to match: a nickname, address, title, vendor or tenant.
limitintegerRows to return per type, default 25.
detailone of summary, full"summary" (default) compact rows; "full" every record incl. financials, appliances + recalls, deadlines, tenancies, and documents.
Example input
{}
properties_addCreate or Updatethrough vritto_create or vritto_update

Add one record: a property (nickname or address), a tenancy (type 'tenancy': propertyId of a leased_out property, tenantName, rent), or a maintenance entry (type 'maintenance': propertyId + date, cost, vendor). A real record.id updates that record instead; sent fields merge.

FieldTypeDescription
typeone of property, tenancy, maintenanceRecord type: 'property' (default) a home or unit; 'tenancy' a tenant and lease on a leased_out property; 'maintenance' a repair, improvement, inspection or upkeep entry.
record*objectThe record's fields; a tenancy or entry needs propertyId.
record.idstringLeave out to add; a real id updates that record, only the fields you send change.
record.nicknamestringFriendly name, e.g. 'Home' or 'Lake cabin'. Recommended when creating.
record.tenureone of owned, rented, leased_outDefaults to 'owned'.
record.propertyTypeone of house, condo, apartment, townhouse, multi_family, land, otherDefaults to 'house'.
record.addressLine1stringStreet address.
record.addressLine2string
record.citystring
record.statestring
record.postalCodestring
record.countrystring
record.currencystringISO 4217 code: a property's money, or the currency a maintenance cost was charged in (it takes its property's when left out). Never assume USD.
record.placeKeystringPlaces module place key to link this property to its map entry. Only pass a real key from the Places module, never invented.
record.bedsnumber
record.bathsnumber
record.sqftintegerInterior area, always stored in square feet: convert square meters (× 10.764) first, and state it back in the user's area unit (settings_find units).
record.yearBuiltinteger
record.lotSizeSqftinteger
record.purchaseDatestringLocal date YYYY-MM-DD.
record.purchasePricenumber
record.financeTypeone of cash, mortgage, heloc, otherHow it was financed (owned / leased_out).
record.lenderstring
record.mortgageBalancenumberOutstanding mortgage balance: drives equity.
record.monthlyPaymentnumberMortgage principal + interest per month.
record.interestRatenumberMortgage APR %.
record.loanTermMonthsinteger
record.downPaymentnumberCash invested: drives cash-on-cash return for landlords.
record.mortgageStartDatestringLocal date YYYY-MM-DD.
record.propertyTaxAnnualnumberAnnual property tax.
record.propertyTaxDueDatestringNext property-tax due date, powers a reminder.
record.hoaMonthlynumberMonthly HOA fee.
record.hoaNamestring
record.utilitiesMonthlynumber
record.monthlyRentnumberType 'property' (rented): rent the user pays. Type 'tenancy': this tenant's rent, which drives rent roll and cash flow.
record.securityDepositnumber
record.leaseStartDatestringLocal date YYYY-MM-DD.
record.leaseEndDatestringA lease's end; powers a reminder.
record.leaseRenewalDatestringLease renewal date: powers a reminder.
record.landlordNamestringLandlord's name (rented).
record.propertyManagerNamestring
record.insurancePolicyIdstringInsurance policy ID to link (from the Insurance module). Empty string unlinks.
record.insuranceRenewalDuestringInsurance renewal date: powers a reminder. When a policy is linked, the policy's own renewal date overrides this.
record.reminderLeadDaysintegerDays before a dated deadline to remind. Default 30.
record.notesstring
record.tenantNamestringTenant's name. Effectively REQUIRED when creating: the server needs a tenant name or linked people, and linked people are app-managed, so a new tenancy without tenantName is rejected.
record.unitstringUnit label for multi-unit properties, e.g. 'Unit A'.
record.statusone of upcoming, current, pastType 'tenancy': defaults to 'current'.
record.moveInDatestringLocal date YYYY-MM-DD.
record.moveOutDatestringLocal date YYYY-MM-DD.
record.depositReturnedboolean
record.kindone of maintenance, repair, improvement, inspection, cleaning, otherDefaults to 'maintenance'.
record.categoryone of plumbing, electrical, hvac, roofing, appliance, landscaping, pest, painting, flooring, structural, cleaning, otherTrade/area, e.g. 'plumbing'. Defaults to 'other'.
record.datestringType 'maintenance': when it happened. Required for one.
record.titlestringShort description, e.g. 'Replaced water heater'.
record.costnumberCost: counts as an expense for landlord P&L.
record.vendorstringContractor/company name.
record.isDiyboolean
record.applianceIdstringOptional appliance ID this work was on (from the dashboard).
record.tenancyIdstringOptional tenancy ID this work was for (leased_out).
record.propertyIdstringType 'tenancy' or 'maintenance': which property. Required for those.
Example input
{
  "record": {
    "nickname": "Home",
    "tenure": "owned",
    "addressLine1": "742 Maple St",
    "city": "San Francisco",
    "currency": "USD"
  }
}
properties_changeUpdatethrough vritto_update

Change one record by record.id (set type for a tenancy or maintenance entry); only sent fields change. propertyId + applianceId + recallId + resolved marks an appliance recall handled (or reopens it). Resolve ids with properties_find first.

Note: propertyId with applianceId, recallId and resolved marks an appliance recall handled.

FieldTypeDescription
typeone of property, tenancy, maintenanceRecord type: 'property' (default) a home or unit; 'tenancy' a tenant and lease on a leased_out property; 'maintenance' a repair, improvement, inspection or upkeep entry.
recordobjectThe record's id plus the fields to change.
record.id*stringRecord ID from a prior properties_find result, never invented.
record.nicknamestringFriendly name, e.g. 'Home' or 'Lake cabin'. Recommended when creating.
record.tenureone of owned, rented, leased_outDefaults to 'owned'.
record.propertyTypeone of house, condo, apartment, townhouse, multi_family, land, otherDefaults to 'house'.
record.addressLine1stringStreet address.
record.addressLine2string
record.citystring
record.statestring
record.postalCodestring
record.countrystring
record.currencystringISO 4217 code: a property's money, or the currency a maintenance cost was charged in (it takes its property's when left out). Never assume USD.
record.placeKeystringPlaces module place key to link this property to its map entry. Only pass a real key from the Places module, never invented.
record.bedsnumber
record.bathsnumber
record.sqftintegerInterior area, always stored in square feet: convert square meters (× 10.764) first, and state it back in the user's area unit (settings_find units).
record.yearBuiltinteger
record.lotSizeSqftinteger
record.purchaseDatestringLocal date YYYY-MM-DD.
record.purchasePricenumber
record.financeTypeone of cash, mortgage, heloc, otherHow it was financed (owned / leased_out).
record.lenderstring
record.mortgageBalancenumberOutstanding mortgage balance: drives equity.
record.monthlyPaymentnumberMortgage principal + interest per month.
record.interestRatenumberMortgage APR %.
record.loanTermMonthsinteger
record.downPaymentnumberCash invested: drives cash-on-cash return for landlords.
record.mortgageStartDatestringLocal date YYYY-MM-DD.
record.propertyTaxAnnualnumberAnnual property tax.
record.propertyTaxDueDatestringNext property-tax due date, powers a reminder.
record.hoaMonthlynumberMonthly HOA fee.
record.hoaNamestring
record.utilitiesMonthlynumber
record.monthlyRentnumberType 'property' (rented): rent the user pays. Type 'tenancy': this tenant's rent, which drives rent roll and cash flow.
record.securityDepositnumber
record.leaseStartDatestringLocal date YYYY-MM-DD.
record.leaseEndDatestringA lease's end; powers a reminder.
record.leaseRenewalDatestringLease renewal date: powers a reminder.
record.landlordNamestringLandlord's name (rented).
record.propertyManagerNamestring
record.insurancePolicyIdstringInsurance policy ID to link (from the Insurance module). Empty string unlinks.
record.insuranceRenewalDuestringInsurance renewal date: powers a reminder. When a policy is linked, the policy's own renewal date overrides this.
record.reminderLeadDaysintegerDays before a dated deadline to remind. Default 30.
record.notesstring
record.tenantNamestringTenant's name. Effectively REQUIRED when creating: the server needs a tenant name or linked people, and linked people are app-managed, so a new tenancy without tenantName is rejected.
record.unitstringUnit label for multi-unit properties, e.g. 'Unit A'.
record.statusone of upcoming, current, pastType 'tenancy': defaults to 'current'.
record.moveInDatestringLocal date YYYY-MM-DD.
record.moveOutDatestringLocal date YYYY-MM-DD.
record.depositReturnedboolean
record.kindone of maintenance, repair, improvement, inspection, cleaning, otherDefaults to 'maintenance'.
record.categoryone of plumbing, electrical, hvac, roofing, appliance, landscaping, pest, painting, flooring, structural, cleaning, otherTrade/area, e.g. 'plumbing'. Defaults to 'other'.
record.datestringType 'maintenance': when it happened. Required for one.
record.titlestringShort description, e.g. 'Replaced water heater'.
record.costnumberCost: counts as an expense for landlord P&L.
record.vendorstringContractor/company name.
record.isDiyboolean
record.applianceIdstringOptional appliance ID this work was on (from the dashboard).
record.tenancyIdstringOptional tenancy ID this work was for (leased_out).
record.propertyIdstringType 'tenancy' or 'maintenance': which property. Required for those.
propertyIdstringWith applianceId and recallId: the property.
applianceIdstringAppliance ID from properties_find detail 'full'.
recallIdstringExact CPSC recall ID from the appliance's recalls list.
resolvedbooleantrue = the user handled it / not applicable; false = reopen.
Example input
{
  "record": {
    "id": "prop_home",
    "mortgageBalance": 295000
  }
}
properties_removeDeletethrough vritto_delete

Remove (archive) one property (its reminders stop), tenancy or maintenance entry. Only for explicit removals; resolve the id with properties_find first.

Note: Set type for a tenancy or a maintenance entry.

FieldTypeDescription
idstringThe record to remove.
typeone of property, tenancy, maintenanceRecord type: 'property' (default) a home or unit; 'tenancy' a tenant and lease on a leased_out property; 'maintenance' a repair, improvement, inspection or upkeep entry.
propertyIdstringOlder name for a property's id.
tenancyIdstringOlder name for a tenancy's id.
logIdstringOlder name for a maintenance entry's id.

Kept in the Vritto app

  • properties_refreshRecalls: Background upkeep Vritto already runs on its own.