Changelog

What changed

Everything new or changed in RoofQuery: products, prices and the API. Newest first.

Open beta

Storm Reports (open beta): hail, wind and tornado history in one call, $5

A Storm Report is the weather history of an address in the US or Canada: radar-estimated hail at the property and within 1, 3 and 5 miles, measured and estimated wind, tornado tracks, NWS warnings and damage surveys, NOAA and FEMA records, and a confidence rating with the plain-English evidence for every storm day. It comes back in the same response that orders it, in seconds.

Storm Reports are in open beta. They're available to every account and billed as normal, but the report format and the JSON data structure may change during the beta. Every report carries a storm.schemaVersion, and any change will be announced here first.

  • $5 per report, free when there's nothing to report. If no storm of any kind was recorded within 5 miles in the last five years, the report is still delivered and nothing is charged. Overview.
  • Ordered like any report: POST /api/v1/reports/orders with "reportType": "storm" returns the whole report, and GET /api/v1/reports/orders/:id reads it again. Your existing keys, balance and brand profiles work as they are. Reference.
  • Five PDFs with every report: Hail Verification, Wind Verification, Date of Loss, Weather History and a plain-English Homeowner Storm Summary, branded like your roof reports, at /api/v1/reports/orders/:id/pdf?template=…. PDFs.
  • Fixed data, flexible details. The weather data is captured when you order and never changes. The date of loss, claim number, insured name and notes can be different on every read or download, so one report can be re-issued for a new date of loss.
  • Notes on writing lines. Every PDF has a Notes box with writing lines: notes you send (up to 450 characters) are printed on the lines, and the rest stay blank to fill in by hand.
  • The JSON carries a chance-of-roof-damage rating, every hail and wind date by distance, and the parcel boundary and owner of record. Field reference.
  • In the dashboard, choose Storm report under Order a report. The sandbox has storm addresses that cost nothing.

Also: GET /api/v1/balance now includes remaining, how many of each product your balance covers. residentialReportsRemaining is unchanged.

API

Choose the contractor when you order

If you order reports for contractors, you now choose whose brand a report carries when you place the order, and it keeps that brand for good. Send a brand profile's id as brand on POST /api/v1/reports/orders, or pick it under For contractor in the dashboard. An order placed without one keeps your own branding. Reference.

  • The PDF can't be re-branded after ordering. On reports ordered from today, ?brand= and the branding parameters on a PDF link are ignored. Reports ordered before today, and Storm Reports, still take them. White labeling.
  • License numbers. Your branding and every brand profile can carry a licenseNumber, printed under the contact details.
  • A contact for each contractor. Brand profiles take a contactEmail and contactPhone, never printed: who we reach if we need more information about a property. Without one, we contact you. Brand profiles.
  • Each order's report.brand says which profile it's branded with, or null. An unknown brand refuses the order with 400 BRAND_NOT_FOUND.
  • Removed: reportName and clientInfo on orders. Requests that send them are still placed, and the fields are ignored. They're no longer returned: use claim for your own reference.
Product

Rapid Squares is open to every account

Rapid Squares is no longer by request: every account can order it, with "reportType": "rapid_squares" on POST /api/v1/reports/orders or from Order a report in the dashboard. It's $7 per report: each building's outline on an aerial photo with our estimated pitch and its squares with waste, in a one-page PDF, an XML and the photo.

Delivered in under 30 minutes. Need it faster? Email [email protected] and we may be able to work something out. Rapid Squares.

Pricing

Reports from $10, with the Xactimate ESX as an option

Residential roof reports are now $10 and commercial reports $30. The Xactimate .esx is now an option on each order, at $5, so you pay for it only on the jobs that need it. Existing customers keep the ESX at $3, when ordering and when adding it later. Every order placed before today keeps its ESX.

  • Add the ESX when you order with "esx": true on POST /api/v1/reports/orders, or tick the box in the dashboard. Reference.
  • Or add it later with POST /api/v1/reports/orders/:id/esx, before or after the report is delivered. Calling it twice charges once. Reference.
  • Each order's report.esxIncluded says whether it has the ESX, and billing.items breaks down the charge. The ESX route answers 403 ESX_NOT_PURCHASED for an order without it. ESX.
  • GET /api/v1/reports/pricing shows your ESX price and whether your orders include it by default. Sandbox orders follow the same default and are still free. Rapid Squares has no ESX.
Fix

Edge totals in the API now always match the PDF

On roofs with parapet walls, the edgeTotals in an order's totals and structures[] could report less wall flashing and eave than the PDF printed for the same report, because the API counted wall lines that sit directly above the roof edge as duplicates. The API now counts every line exactly the way the PDF does, per structure, for lengths and counts.

This applies to every order, including reports delivered before today: reading an order returns the corrected numbers. Pitched roofs without parapets were not affected. Report data.

API

Brand profiles: your customers’ logos on their reports

White labeling gains a third layer. A brand profile is a saved brand for one of your own customers: company name, contact block, colours and, for the first time, a logo. Create one per customer, and put its id on any PDF link as ?brand=. The report renders in that customer's brand, logo included, on an order you placed.

  • POST /api/v1/branding/profiles creates a profile; PUT …/:id/logo takes the image bytes. List, get, patch and delete are there too. Reference.
  • ?brand=<profileId> on the PDF route. Explicit query params still win over the profile, field by field; the profile replaces your account defaults wholesale.
  • In the dashboard, Report branding is now Branding with two tabs: your Defaults, and Profiles, where each profile shows its id, a logo upload and a test PDF.
  • Up to 500 profiles per account. A profile from another account, or an unknown id, is a 404, the same as an unknown order.

Nothing changes for existing integrations: a link with no ?brand= renders exactly as before, and the per-download params behave as they did. How white-label branding works has the walkthrough.