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_findRead 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.
| Field | Type | Description |
|---|---|---|
| type | one of property, tenancy, maintenance | Which records to read; omit for every type. |
| id | string | Return just this record. |
| propertyId | string | Tenancies or maintenance of this property. |
| tenure | one of owned, rented, leased_out | Type 'property': only owned, rented or leased_out ones. |
| status | one of upcoming, current, past | Type 'tenancy': only upcoming, current or past ones. |
| from | string | Type 'maintenance': earliest date, inclusive. |
| to | string | Type 'maintenance': latest date, inclusive. ALWAYS pass from/to when the question concerns a period. |
| query | string | Text to match: a nickname, address, title, vendor or tenant. |
| limit | integer | Rows to return per type, default 25. |
| detail | one 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_updateAdd 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.
| Field | Type | Description |
|---|---|---|
| type | one of property, tenancy, maintenance | Record 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* | object | The record's fields; a tenancy or entry needs propertyId. |
| record.id | string | Leave out to add; a real id updates that record, only the fields you send change. |
| record.nickname | string | Friendly name, e.g. 'Home' or 'Lake cabin'. Recommended when creating. |
| record.tenure | one of owned, rented, leased_out | Defaults to 'owned'. |
| record.propertyType | one of house, condo, apartment, townhouse, multi_family, land, other | Defaults to 'house'. |
| record.addressLine1 | string | Street address. |
| record.addressLine2 | string | |
| record.city | string | |
| record.state | string | |
| record.postalCode | string | |
| record.country | string | |
| record.currency | string | ISO 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.placeKey | string | Places module place key to link this property to its map entry. Only pass a real key from the Places module, never invented. |
| record.beds | number | |
| record.baths | number | |
| record.sqft | integer | Interior 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.yearBuilt | integer | |
| record.lotSizeSqft | integer | |
| record.purchaseDate | string | Local date YYYY-MM-DD. |
| record.purchasePrice | number | |
| record.financeType | one of cash, mortgage, heloc, other | How it was financed (owned / leased_out). |
| record.lender | string | |
| record.mortgageBalance | number | Outstanding mortgage balance: drives equity. |
| record.monthlyPayment | number | Mortgage principal + interest per month. |
| record.interestRate | number | Mortgage APR %. |
| record.loanTermMonths | integer | |
| record.downPayment | number | Cash invested: drives cash-on-cash return for landlords. |
| record.mortgageStartDate | string | Local date YYYY-MM-DD. |
| record.propertyTaxAnnual | number | Annual property tax. |
| record.propertyTaxDueDate | string | Next property-tax due date, powers a reminder. |
| record.hoaMonthly | number | Monthly HOA fee. |
| record.hoaName | string | |
| record.utilitiesMonthly | number | |
| record.monthlyRent | number | Type 'property' (rented): rent the user pays. Type 'tenancy': this tenant's rent, which drives rent roll and cash flow. |
| record.securityDeposit | number | |
| record.leaseStartDate | string | Local date YYYY-MM-DD. |
| record.leaseEndDate | string | A lease's end; powers a reminder. |
| record.leaseRenewalDate | string | Lease renewal date: powers a reminder. |
| record.landlordName | string | Landlord's name (rented). |
| record.propertyManagerName | string | |
| record.insurancePolicyId | string | Insurance policy ID to link (from the Insurance module). Empty string unlinks. |
| record.insuranceRenewalDue | string | Insurance renewal date: powers a reminder. When a policy is linked, the policy's own renewal date overrides this. |
| record.reminderLeadDays | integer | Days before a dated deadline to remind. Default 30. |
| record.notes | string | |
| record.tenantName | string | Tenant'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.unit | string | Unit label for multi-unit properties, e.g. 'Unit A'. |
| record.status | one of upcoming, current, past | Type 'tenancy': defaults to 'current'. |
| record.moveInDate | string | Local date YYYY-MM-DD. |
| record.moveOutDate | string | Local date YYYY-MM-DD. |
| record.depositReturned | boolean | |
| record.kind | one of maintenance, repair, improvement, inspection, cleaning, other | Defaults to 'maintenance'. |
| record.category | one of plumbing, electrical, hvac, roofing, appliance, landscaping, pest, painting, flooring, structural, cleaning, other | Trade/area, e.g. 'plumbing'. Defaults to 'other'. |
| record.date | string | Type 'maintenance': when it happened. Required for one. |
| record.title | string | Short description, e.g. 'Replaced water heater'. |
| record.cost | number | Cost: counts as an expense for landlord P&L. |
| record.vendor | string | Contractor/company name. |
| record.isDiy | boolean | |
| record.applianceId | string | Optional appliance ID this work was on (from the dashboard). |
| record.tenancyId | string | Optional tenancy ID this work was for (leased_out). |
| record.propertyId | string | Type '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_updateChange 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.
| Field | Type | Description |
|---|---|---|
| type | one of property, tenancy, maintenance | Record 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 | object | The record's id plus the fields to change. |
| record.id* | string | Record ID from a prior properties_find result, never invented. |
| record.nickname | string | Friendly name, e.g. 'Home' or 'Lake cabin'. Recommended when creating. |
| record.tenure | one of owned, rented, leased_out | Defaults to 'owned'. |
| record.propertyType | one of house, condo, apartment, townhouse, multi_family, land, other | Defaults to 'house'. |
| record.addressLine1 | string | Street address. |
| record.addressLine2 | string | |
| record.city | string | |
| record.state | string | |
| record.postalCode | string | |
| record.country | string | |
| record.currency | string | ISO 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.placeKey | string | Places module place key to link this property to its map entry. Only pass a real key from the Places module, never invented. |
| record.beds | number | |
| record.baths | number | |
| record.sqft | integer | Interior 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.yearBuilt | integer | |
| record.lotSizeSqft | integer | |
| record.purchaseDate | string | Local date YYYY-MM-DD. |
| record.purchasePrice | number | |
| record.financeType | one of cash, mortgage, heloc, other | How it was financed (owned / leased_out). |
| record.lender | string | |
| record.mortgageBalance | number | Outstanding mortgage balance: drives equity. |
| record.monthlyPayment | number | Mortgage principal + interest per month. |
| record.interestRate | number | Mortgage APR %. |
| record.loanTermMonths | integer | |
| record.downPayment | number | Cash invested: drives cash-on-cash return for landlords. |
| record.mortgageStartDate | string | Local date YYYY-MM-DD. |
| record.propertyTaxAnnual | number | Annual property tax. |
| record.propertyTaxDueDate | string | Next property-tax due date, powers a reminder. |
| record.hoaMonthly | number | Monthly HOA fee. |
| record.hoaName | string | |
| record.utilitiesMonthly | number | |
| record.monthlyRent | number | Type 'property' (rented): rent the user pays. Type 'tenancy': this tenant's rent, which drives rent roll and cash flow. |
| record.securityDeposit | number | |
| record.leaseStartDate | string | Local date YYYY-MM-DD. |
| record.leaseEndDate | string | A lease's end; powers a reminder. |
| record.leaseRenewalDate | string | Lease renewal date: powers a reminder. |
| record.landlordName | string | Landlord's name (rented). |
| record.propertyManagerName | string | |
| record.insurancePolicyId | string | Insurance policy ID to link (from the Insurance module). Empty string unlinks. |
| record.insuranceRenewalDue | string | Insurance renewal date: powers a reminder. When a policy is linked, the policy's own renewal date overrides this. |
| record.reminderLeadDays | integer | Days before a dated deadline to remind. Default 30. |
| record.notes | string | |
| record.tenantName | string | Tenant'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.unit | string | Unit label for multi-unit properties, e.g. 'Unit A'. |
| record.status | one of upcoming, current, past | Type 'tenancy': defaults to 'current'. |
| record.moveInDate | string | Local date YYYY-MM-DD. |
| record.moveOutDate | string | Local date YYYY-MM-DD. |
| record.depositReturned | boolean | |
| record.kind | one of maintenance, repair, improvement, inspection, cleaning, other | Defaults to 'maintenance'. |
| record.category | one of plumbing, electrical, hvac, roofing, appliance, landscaping, pest, painting, flooring, structural, cleaning, other | Trade/area, e.g. 'plumbing'. Defaults to 'other'. |
| record.date | string | Type 'maintenance': when it happened. Required for one. |
| record.title | string | Short description, e.g. 'Replaced water heater'. |
| record.cost | number | Cost: counts as an expense for landlord P&L. |
| record.vendor | string | Contractor/company name. |
| record.isDiy | boolean | |
| record.applianceId | string | Optional appliance ID this work was on (from the dashboard). |
| record.tenancyId | string | Optional tenancy ID this work was for (leased_out). |
| record.propertyId | string | Type 'tenancy' or 'maintenance': which property. Required for those. |
| propertyId | string | With applianceId and recallId: the property. |
| applianceId | string | Appliance ID from properties_find detail 'full'. |
| recallId | string | Exact CPSC recall ID from the appliance's recalls list. |
| resolved | boolean | true = the user handled it / not applicable; false = reopen. |
Example input
{
"record": {
"id": "prop_home",
"mortgageBalance": 295000
}
}properties_removeDeletethrough vritto_deleteRemove (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.
| Field | Type | Description |
|---|---|---|
| id | string | The record to remove. |
| type | one of property, tenancy, maintenance | Record 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. |
| propertyId | string | Older name for a property's id. |
| tenancyId | string | Older name for a tenancy's id. |
| logId | string | Older name for a maintenance entry's id. |
Kept in the Vritto app
properties_refreshRecalls: Background upkeep Vritto already runs on its own.