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.
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.
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.
curl "https://api.roofquery.com/api/v1/reports/orders/rq_ord_8f3a21c9d4e07b16/esx" \
-o report.esx
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.
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.
| Claim on the order | Filename | Why |
|---|---|---|
CLAIM12345 | CLAIM12345.esx | Already legal — used untouched |
123 Main St/Apt#4 | 123_Main_St_Apt.esx | Space, slash and hash substituted; runs collapsed; trailing separator trimmed |
12/34 Main Street Apt #7 | 12_34_Main_Stree.esx | Same, then cut at 16 |
| none, on 6515 Turnbridge Pl | 6515_Turnbridge.esx | The 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.
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.