Menu · Guides
Guides

Changelog

Releases and planned additions.

View as Markdown
  • v1.0 — First release for brokerage owners and admins: account, properties (including /properties/engagement), leads, the agent directory, summary, email, traffic, webhooks and the event feed.

  • v1.13.3 — Connections no longer expire. A sign-in from any assistant now lasts until you disconnect it, Ruuster revokes it, or your API key stops working; the 90-day limit is gone.

  • v1.13.2 — Muse connects with the Ruuster sign-in and stays connected. Assistants that sign in but never renew, such as Meta's Muse, now get a sign-in that doesn't expire after an hour, so the connection no longer looks dead after the first hour. Revoke in the Ruuster web app still ends it at once. The Muse steps now use the sign-in, which also connects your CRM.

  • v1.13.1 — An MCP address for API keys only: https://mcp.ruuster.com/key. It offers no sign-in, so assistants that prefer a sign-in whenever one is offered, such as Meta's Muse, ask for your API key straight away. The tools and key checks are the same as at /mcp. The Muse steps now use this address and add the connector from a Muse chat. See Muse and other assistants that take one API key.

  • v1.13.0 — Email status. Get a lead's email status answers, for one address, CRM id or lead, Ruuster's verdict on the email: valid, invalid, blocked, soft_bounce, complaint, unsubscribed or unknown, with the code behind it (the SMTP line or verification status), the reason in a sentence, and since when. The new lead.email_status_changed webhook event fires when that verdict changes (lead.* subscribers get it automatically). The Email status guide covers the statuses and how to keep the verdict in Follow Up Boss, Sure Send or Sierra Interactive through their APIs, where smart lists and action plans can use it.

  • v1.12.2 — Your key on its own. AI assistants that take a single API key and send it in the Authorization header, such as Meta's Muse, connect to the MCP server with just your personal key (Bearer <key> or HTTP Basic); Ruuster finds the login it belongs to. A brokerage integration key still needs the person's email: paste email:key. On the REST API, x-email is now optional with a personal key, and a lone integration key gets 401 email_required. See Muse and other assistants that take one API key.

  • v1.12.1 — Public records reach only the states your brokerage's MLSs cover (for example, Oklahoma for a brokerage on MLSOK). A home elsewhere returns 400 mls_not_in_scope from the public record calls and from a CMA on a home with no MLS record, and doesn't count toward the daily allowance.

  • v1.12.0 — Public records without running a CMA, for US homes whether or not they were ever on the MLS. Look up a public record by address, parcel number or propertyId returns the parcel, building facts, tax and assessed value, AVM, last sale and the loans still open, with the owners' names and mailing address when you add include=owner. Get a home's deed and mortgage history returns every recorded transfer and mortgage, each mortgage marked open, released or paid off. Both answer one home per call, under a daily allowance of 500 per brokerage. CMAs now value homes with no MLS record from their county record (subject.publicRecordId, or an address the MLS doesn't know).

  • v1.11.6 — Older sales are found again. /properties/lookup (by MLS number or address), /properties/{propertyId} and CMA subjects now reach a sale that closed more than about a year ago, which used to return nothing or 404 not_found. Comps are unchanged (up to 12 months).

  • v1.11.5 — AI assistants that can't finish the Ruuster sign-in, such as Grok Bot, can connect with your login email and API key as headers (x-email, x-api-key), plus optional x-crm-vendor, x-crm-key and x-crm-write for the CRM tools. Assistants that sign in, such as Claude and ChatGPT, work as before. See Grok Bot and other assistants that take headers.

  • v1.11.4 — In AI assistants, the first answer after you connect checks whether Claude can put your logo and listing photos into decks and documents, and says what to allow if it can't. The Ruuster connect screen and the owner's setup steps mention it too. See Logos and photos in decks and documents.

  • v1.11.3 — In AI assistants, every image Ruuster returns (your logo, agent photos, listing photos) now comes from one address, api.ruuster.com, so allowing that one address in Claude's settings lets Claude put them into the decks and documents it builds. See Logos and photos in decks and documents.

  • v1.11.2 — CMAs: the public record's loans and the net sheet's default mortgagePayoff count only the loans still open. A loan whose release was recorded, or that a later refinance paid off, is left out even when the county record still lists it (it could make a seller look underwater), and a newer refinance the county record hasn't picked up yet counts at its amortized balance.

  • v1.11.1 — GET /brand: logo.url is now your full logo from your brokerage profile, the one your site shows, instead of your app's square icon, which moves to the new logo.appIcon. For sites styled with the newer UI customization, colors.text is the color your site renders text in. In AI assistants, cma_create and cma_get include the brand kit, and the visual CMA shows your logo, colors and fonts with the agent's photo and contact details.

  • v1.11 — Changing your CRM, with brakes and a permanent record. POST /crm/changes previews a change (add or remove tags, change stage, reassign, add a note or a task, or undo an earlier tag, stage or assignment change) for up to 500 people and writes nothing; POST /crm/changes/{changeId}/apply makes it after the same person confirms, no sooner than 8 seconds and no later than 15 minutes after the preview, and checks every person against what the CRM answers. Needs x-crm-write: allow; Follow Up Boss for now. Every request, who asked, and each person's before and after are kept for good: GET /crm/changes and GET /crm/changes/{changeId}. Reads of your CRM are now on record too. In AI assistants, tick "Let the assistant make changes" under Your CRM on the connect screen. See Connect your CRM.

  • v1.10 — Your CRM, joined with Ruuster. Send your CRM's API key (Follow Up Boss, Sierra Interactive or Sure Send) in the new x-crm-vendor and x-crm-key headers, used for that request only, and ask questions that need both sides. GET /leads/follow-up lists leads who viewed listings (or engaged more) on your Ruuster sites but have no call, or no contact, in your CRM for N days. GET /leads/crm-segments counts engaged leads by CRM pond, stage, agent or tag ("how many leads in our inactive ponds engaged meaningfully?"). GET /crm/people and GET /crm/people/{crmPersonId} read your CRM's people with their Ruuster activity attached, and GET /crm/overview and GET /crm/identity describe the key and the account's ponds, stages and users. In AI assistants, pick your CRM and paste its key on the connect screen. See Connect your CRM.

  • v1.9.1 — GET /properties/{propertyId}/prospects is faster and no longer fails with 503 source_unavailable when the check against shape areas (counties, school districts, neighborhoods, drawn areas) runs long: it returns the zip and city matches and says so in the new meta.areaShapes (checked, timed_out or no_location). Lead events and webhooks keep up again for every brokerage. Your brokerage's integration key now works with any owner's or admin's login email, and a brief outage on Ruuster's side no longer answers 403 brokerage_not_enabled.

  • v1.9 — GET /wins: your account's highlights in one call. It shows figures that grew against the previous period (led by engagement: leads engaged, listing views, activity), your most-viewed listings, your most engaged leads, agent activity, your hottest areas with Ruuster's share of listing views, and, for Follow Up Boss accounts, dormant leads re-engaged after a Ruuster touch, with ready-written headlines. It reports highlights only; /summary remains the complete record. GET /leads/map gains sources=1, which places the listing views your CRM recorded from other sources (portals, IDX sites) on the same map and gives Ruuster's share of views for every point and area. The MCP map colours areas where Ruuster has most of the views. Through MCP these are the wins and leads_map tools.

  • v1.8.2 — Every Ruuster client brokerage now has API access without asking: owner and admin keys work within an hour of the brokerage being set up. Lead contact details (email and phone on lead objects and in webhooks) are on by default; ask your CSM if you'd like them off. /me shows the setting as leadContactDetails.

  • v1.8.1 — /summary buckets now carry weeklyEmail: the exact figures Ruuster's weekly analytics email showed for that week, next to the stricter measured figures. The summary page explains which to use: the email's numbers are the headline, and the measured ones (human opens, signed-in leads) are the detail and are expected to be lower. Assistants connected through MCP are told the same, so reports no longer flag the difference as a mismatch.

  • v1.8 — GET /leads/map: where your leads are looking for homes, as map-ready points. Listing views, favorites and tour requests from the last 30 days, grouped by the viewed listings' locations into clusters, ZIP codes, cities or single listings, with the top cities and the map bounds, in one call and without lead names. Through MCP this is the leads_map tool, so "make me a market map of where my leads are looking" no longer means paging through every lead. Also fixed: CMA ids are mixed-case, and the MCP cma_get tool and the OpenAPI document wrongly accepted lowercase ids only.

  • v1.7 — GET /mortgage/rates: the national mortgage-rate averages (30- and 15-year fixed, FHA, jumbo, VA, the 10-year Treasury; daily lock indices and the weekly Freddie Mac survey) with the history of any one series, as data. CMAs now carry the current 30- and 15-year figures in market.rates. Through MCP this is the mortgage_rates tool, and assistants are told to use it for rate questions and payment illustrations instead of quoting a rate from memory. The MCP server also gained ready-made prompts (a "What can Ruuster do?" tour plus hottest leads, lead story, listing engagement, CMA, weekly summary, mortgage rates and seller report) and offers the tour when a conversation opens with a general question.

  • v1.6 — GET /brand: your brokerage's name, logo, phone, website and the colors and fonts your Ruuster site is styled with, so reports built from the API (or by an assistant through MCP) carry your brand. The seller_report MCP tool includes it.

  • v1.5 — MCP server. Add https://mcp.ruuster.com to Claude, ChatGPT or any assistant that supports remote MCP servers, sign in with your owner or admin email and API key, and every read call plus Run a CMA is available as a tool, with composed tools for seller reports, lead stories, hot leads and listing lookups. See Use with AI assistants (MCP).

  • v1.4 — CMAs. POST /cma runs a comparative market analysis for any home in your MLSs (by address, MLS number or id): subject profile, sold comps with rule-based dollar adjustments, active, pending and expired competition, market conditions, a value conclusion and a seller net sheet, all computed from MLS records. GET /cma and GET /cma/{cmaId} read stored analyses for 90 days. 200 CMAs per brokerage per day by default. See CMAs.

  • v1.3 — Any listing can be described, one at a time. Events, the event feed and a lead's activity now name every listing a lead engaged with (MLS number, MLS, address), not only yours. GET /properties/{propertyId} answers for any listing by id and returns photos (the full gallery, up to 50). New GET /properties/lookup?mlsRecordId= resolves an MLS number to any listing in your MLSs (a lookup call). GET /properties/{propertyId}/engagement?scope=any returns your own leads' views, unique leads, favorites and tour requests on any one listing. Property objects carry ownedByYou. Bulk calls still cover your own inventory only.

  • v1.2 — GET /properties/{propertyId}/viewers takes scope=any to ask about one listing that isn't yours (still your own leads, one listing per call), and returns property.ownedByYou.

  • v1.1 — GET /leads/activity (your most active leads in a period) and GET /properties/{propertyId}/viewers (your leads who viewed, saved or toured a listing).

Planned (not available yet; dates aren't promised):

  • compare=previous, changedSince and ETag caching.
  • previousPropertyIds for re-listed properties.

Breaking changes are announced here at least 90 days ahead. Ruuster may change, suspend or discontinue the API at any time without notice.