API changelog
Changes to Resi's APIs, newest first.
Every change to an API's OpenAPI document is listed here, in the same pull request as the change.
2026-10-06
- V2: Added leads, read-only: form submissions and tour bookings, newest first, filterable by property, form, lead source and date. See Leads & tours.
- V2: Added fee assignments: assign a fee to a property, floor plan or unit, narrow it to bedroom counts, floor plans or dates, and override its amount, frequency or requirement for that scope.
- V2: Media can be deleted, taken off one record while staying in the library, and re-ordered on a record. Added media folders; a file is filed with
folder_id, and media files carryproperty_idandfolder_id. - V2: Added
GET /rolesand connection logs. - V2: Properties, floor plans and units accept a
slug. Properties acceptaddresses(the full list, exactly one primary),display_settings,website_settingsand an orderedamenity_ids, and returnaddresses,website_settingsand, on a single property,amenity_ids. Property fields the PMS connection syncs are refused with a422, as they are on units and floor plans. - V2: Amenities accept and return
mits_amenity_type, the MITS 5.0 amenity type ILS feeds carry. - V2: A boolean list filter that is not
true,false,1,0,yes,no,onoroffis a422. It used to mean false.
2026-10-05
- V2: Unit and floor plan rent writes follow Resi's pricing. Send base rent or the total and the other is calculated from the fees in effect, so the response carries both and a later fee change keeps the side you sent. Sending both sides of one rent is a
422. Fields the property's PMS connection syncs are refused with a422naming the connection, instead of being overwritten on the next sync. See Syncing inventory. - V2: Units and floor plans carry their stored fees:
monthly_fee_total,monthly_fee_total_max,upfront_fee_total,fee_breakdownandfees_synced_at. A unit'sflooraccepts a label such asPHas well as a number. - V2: Fees, galleries, FAQs, announcements and content blocks return
property_idson show, create and update. - V2: Updating a content block's
content_itemschanges items sent with theiridin place, keeping their ids and media, instead of replacing every item. Link URLs on content blocks, content items and announcements accepthttpandhttpsURLs, relative links, anchors,mailto:andtel:, and refuse every other scheme, including one hidden behind HTML character references. - V2: Deleting a floor plan keeps its units, now without a floor plan, and removes the fee assignments made to it. Deleting a unit removes its fee assignments.
- V2: Every collection has a stable order: oldest first unless it has its own default, with ties broken by
id, so paging never repeats or skips a record. - V2: A missing record's
404names its kind (Unit not found.) instead of a class name, and every422carries anerrorsobject. - V2: The OpenAPI document now covers every V2 endpoint. Added group sets, groups and their members, removing a user, social profiles, websites, their content types, and content entries. These endpoints already existed. New guides: Groups, Website content entries and Users and roles.
- V2: Every response schema is now closed and lists its keys as required. A key that only some responses carry, such as a unit's
propertyon its show response, says when it is present (x-present-when). Paginationmetaandlinksare documented in full. - V2: Corrected documented types that never matched the API: a unit's
flooris a string, account roles can be custom ornull,/mecarries no top-levelrole,roleonPOST /usersis optional and accepts custom roles, and lead sourcenamelists the values it accepts. No response changed. - V2: Update responses for units, floor plans, buildings and properties now include the same media as create and show. Updates to connections include
latest_log. Group and group set create and update responses include their children and set. A created group set returns itsallows_multiple_membershipdefault instead ofnull. A created, shown or updated embed includes itsimage. - V2: Website delivery and preview tokens are rejected with
403on every V2 endpoint. Only account API tokens can call V2. See Authentication. - V2: Connection credentials are no longer readable. Connections,
GET /connections/{connection}and the attach response return every credential insettingsas********. Connection and attachmentsettingsupdates now merge into the stored settings instead of replacing them, and a credential sent back as********keeps its stored value. See Managing connections. - V2:
PATCH /fees/{fee}rejects acodethat another fee in the account already uses, and aclassoutside the fee class list, with422, as creating a fee already did. - V2:
PATCH /users/{user}returns403when it changes thenameoremailof a user who also belongs to another account, or who is Resi staff. Users can still change their own. Role changes are unaffected. - V2: List filters reject malformed values with
422. Examples are aproperty_idthat is not a UUID, a non-numeric value on a numeric range such asbedrooms, an unparseable date bound, or a range operator other thangte,lte,gtandlt. These used to fail with a500.
2026-10-01
- V1: On
GET /property/{property}/floor-plans, a unit that is available but has no availability date now counts as available now inunitsAvailable,numberUnitsAvailable,unitsAvailableOrComingSoon,numberUnitsAvailableOrComingSoonandbuildings. Before, only a dated unit counted, so a floor plan could report zero available units while/unitslisted one of its units as available. Coming-soon counts and the response shape are unchanged. - All APIs: Properties carry their display settings: V1
displaySettings, V2display_settingsand the sites API'sdisplayonGET /properties/{property}. They hold a new flag,hide_available_units, which asks a site to hide its available units list, alongside the existingprepend_building_number_to_unit_numberandshow_non_marketable_amenities. Each value is the one in effect: the property's own, else its account's. Algolia property records carry the same object asdisplaySettings.
2026-09-30
- Sites API: The OpenAPI document now describes the
pricing,leasing,pet_policyandoffice_hourssettings onGET /properties/{property}key by key. They were documented as free-form objects. No response changed. - All APIs: Pricing display settings carry two new labels:
no_availability_price_label, to show in place of a price hidden because nothing is available (hide_price_when_no_availability), andno_price_label, to show wherever else a price isnull.hidden_price_labelis now only for prices hidden byhide_all_pricing. They are in V1pricingDisplaySettings, V2pricing_display_settings(readable and writable), and the sites API'spricingandpricing_display. See Pricing and fees. - Sites API: A website can be set to search its account's own Algolia connection instead of Resi-managed search. The site manifest's
searchthen carries that connection's application id, search-only key and index names. Its shape is unchanged.
2026-09-28
- Sites API: The site manifest carries
search: the Algolia application id, a search-only key limited to the site's indices and domains, and the index names. It isnulluntil the website's search is provisioned. - V2: The OpenAPI document now names
https://v2.getresi.comas its server, and every tag has a description. - V2:
DELETE /properties/{property}is documented as returning202, which it always has: the deletion is queued and the property can still be read until it finishes. - V1: Corrected three descriptions.
/formsnow says to re-fetch when a lead submission returns404; a422is about the submitted values, not the form.POST /cache/clearpurges the page cache of the property's connected website host, not a Resi cache.GET /property/{property}no longer says the V2 property lacks an address.
2026-09-19 to 2026-09-22 — Sites API
- Added
GET /content-types. - Property cards carry a rating, and fall back to a gallery image when there is no featured image.
- Published tags on property cards, videos, virtual tours and neighborhood places, plus panoramas, image tags, country and timezone.
- Published inherited groups on units and floor plans.
- Rent filters never reveal a hidden price. See Inventory and pricing.
- The cache-clear webhook is sent only to sites built to receive it.
2026-09-18 — Sites API
- Released the Sites API at
/api/sites/v1: the website delivery API, authenticated per website and addressed by slug. It covers the site manifest and routing, content, properties, floor plans, units, availability, the price matrix, lead sources, integrations, forms, tours, analytics events and source observations, with cache tags and a signed cache-clear webhook.
2026-09-15
- V2: Units and floor plans accept
external_ids, the record's identifiers in other systems.
2026-09-09
- V1: The OpenAPI document was corrected to match what these endpoints already return. No response changed.
- The fee
requirementon/feescan benull. - An integration's
settingson/integrationscan be an array. - A neighborhood place's
ratingon/neighborhoodis a string. - A unit's
unitFlooron/unitsis a string. - A widget integration's
idon/widgetis an integer.
- The fee
- V1: Floor plans carry
floorPlanSortOrder, the order set in the Resi app. The feed is served in that order.
2026-09-02
- V1:
GET /property/{property}/feesreturns the property's effective fee schedule, with per-property overrides applied and expired fees left out./resolved-feeswas removed.
2026-08-27
- V1: Slug addressing moved to the connection-scoped portfolio routes,
/connection/{connection}/property/{property}. The/property/{property}routes take a UUID only.
Last updated on