Documentation

Xactimate ESX

GET /api/v1/reports/orders/:id/esx: the report as an Xactimate .esx, named with the claim number, on every order that includes ESX. No key needed.

API reference

Base URL: https://api.roofquery.com. Authenticate with Authorization: Bearer <your key> — except the file routes (report and storm report files), which take no key.

Copies this whole page as Markdown, so you can paste it into an assistant and have it write the integration. Nothing secret goes on the clipboard — your keys aren't included.

GET /api/v1/reports/orders/:id/esx

The Xactimate-compatible .esx for the order — the sketch, prepared by the annotation team alongside your report, ready to import. Always the current version of the report: after a revision, this gives you the corrected one.

On orders that include it. The ESX is an option on residential and commercial reports: "esx": true when you place the order (+$5, or your account's ESX price), or add it later, before or after delivery. Every order placed before ESX became an option has it. Downloading it draws nothing; an order with ESX can be downloaded as often as you like. report.esxIncluded on the order says whether it has one.

Parameters

None. Give the order a claim on POST /reports/orders and it goes on the .esx. The file downloads as <claim>.esx, so it lands under the number your estimator already knows the job by. The claim is set at ordering or not at all, and without one the file is named from the street line of the ordered address.

Request
curl "https://api.roofquery.com/api/v1/reports/orders/rq_ord_8f3a21c9d4e07b16/esx" \
  -o report.esx
Response
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="CLAIM12345.esx"
Cache-Control: no-store

Filenames are 16 characters, A-Za-z0-9_.- only. A longer claim is truncated and anything outside that set becomes an underscore — the claim on the order is kept exactly as you sent it; only the filename bends. Read Content-Disposition if you need to know what it became.

Working with the file

Open it in Xactimate as you would any other ESX; there is nothing RoofQuery-specific to configure. It is not a format to read yourself — if you want the measurements as data, take the /xml instead.

The filename, given the claim on the order
Claim on the orderFilenameWhy
CLAIM12345CLAIM12345.esxAlready legal — used untouched
123 Main St/Apt#4123_Main_St_Apt.esxSpace, slash and hash substituted; runs collapsed; trailing separator trimmed
12/34 Main Street Apt #712_34_Main_Stree.esxSame, then cut at 16
none, on 6515 Turnbridge Pl6515_Turnbridge.esxThe street line of the ordered address

The street line rather than the whole address, because 16 characters of "6515 Turnbridge Pl, Prospect, KY 40059, USA" spends most of its budget on the part that is the same for every property on the street.

Errors

403 ESX_NOT_PURCHASED when the order doesn't include ESX: the message names POST /api/v1/reports/orders/:id/esx and what it costs on your account. 409 not_ready until the order completes. We check the file before sending it, so a bad one comes back as 502 download_failed rather than as a .esx that fails to open; it is safe to retry. A Rapid Squares order has no ESX and returns 404 ESX_NOT_SUPPORTED. Every code is under Errors.