# How white-label branding works on RoofQuery roof reports

> RoofQuery PDFs carry your company name, logo, colors and contact block instead of ours. Branding has three layers: account defaults set once in the dashboard, brand profiles saved per customer with their own logo and named on a download link as ?brand=, and one-off query parameters for a single download. The PDF is rendered at download time, so a branding change re-skins every report ever ordered. A small RoofQuery watermark remains in the footer. The XML carries no branding.

Category: Getting started. Last updated 2026-09-09.
Canonical: https://roofquery.com/guides/how-white-label-branding-works

Most RoofQuery customers never show a RoofQuery report to anyone. They show their own report, with their own name on the cover, generated by RoofQuery underneath. This guide is exactly how that works and where the edges are. The reference version is in the [white labeling section of the docs](https://roofquery.com/docs/white-labeling).

## What gets branded?

Everything a reader sees as "who made this". Set a company name and the header, footer, cover-page attribution and legal contact block all become yours. Add a logo, a brand color and a text color and the header band takes them. Leave everything blank and the report falls back to full RoofQuery branding. The XML carries no branding in either case; it is the measurement document, byte for byte, for your own pipeline.

## How is branding set?

Three ways, for three different questions. Most specific wins.

| Layer | Where | Use it for | Logo |
| --- | --- | --- | --- |
| Account defaults | Dashboard, Branding, Defaults tab | Your own brand, on every report that names nothing else | Yes |
| Brand profile | [API](https://roofquery.com/docs/brand-profiles) or the Profiles tab | One saved brand per customer you resell to, named on the link as `?brand=` | Yes |
| Per-download params | Query params on the [PDF URL](https://roofquery.com/docs/pdf) | A one-off change to a single file | No |

### Account defaults

In the dashboard under **Branding**, set your company name, contact details, colors and logo once. Every report you order uses them unless a link says otherwise. The logo is uploaded as a file and served by us, never fetched from a URL, so a report rendered next year does not depend on your website still hosting the image.

### Brand profiles, for your customers

A profile is a complete brand for one of your customers: their name, contact block, colors and their logo. Create it once, store the returned id on your own customer record, and add `?brand=` to every PDF link for that customer. The report renders in their brand on an order you placed. This is the way to give each roofer on your platform their own logo.

```
curl -X POST "https://api.roofquery.com/api/v1/branding/profiles" \
  -H "Authorization: Bearer rq_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme Roofing — Louisville","companyName":"Acme Roofing",
       "publicPhone":"5025559876","publicEmail":"estimates@acmeroofing.example",
       "brandColor":"#0F7A4D"}'

curl -X PUT "https://api.roofquery.com/api/v1/branding/profiles/rq_brand_7f3a21c9d4e07b16/logo" \
  -H "Authorization: Bearer rq_live_sk_..." \
  -H "Content-Type: image/png" --data-binary @acme-logo.png

https://api.roofquery.com/api/v1/reports/orders/rq_ord_8f3a21c9/pdf?brand=rq_brand_7f3a21c9d4e07b16
```

Profiles can also be created by hand in the dashboard, where each one shows its id and a test PDF. Up to 500 per account. The [brand profiles reference](https://roofquery.com/docs/brand-profiles) has every field.

### Per-download overrides

Pass branding as query parameters on the PDF URL and that one download is re-skinned. Useful for a one-off; for anything repeated, a profile is less to carry on every link and is the only way to change the logo.

```
curl "https://api.roofquery.com/api/v1/reports/orders/rq_ord_8f3a21c9/pdf\
?companyName=Acme%20Roofing\
&address=900%20Bardstown%20Rd%2C%20Louisville%2C%20KY%2040204\
&publicPhone=5025559876\
&publicEmail=estimates%40acmeroofing.example\
&brandColor=%230F7A4D" \
  -o acme-report.pdf
```

If you rebrand a download this way, send all four contact fields together so the report is not half one company and half another.

## Why is a profile complete rather than layered?

Because a half-applied brand prints one company's name over another company's phone number. When a link names a profile, every printed field comes from the profile and nothing falls through to your account defaults. Explicit query params on the same link still override the profile, field by field. There is no `?logo=` parameter and there never will be: a logo is bytes, a URL is a link, and the API never fetches a link.

## When is branding applied?

At download time, every time. Nothing is cached. That means a change to your defaults or to a profile re-skins every report you have ever ordered on its next download. If a customer rebrands, edit their profile and their back catalogue rebrands with them.

## How is the logo handled?

The same way for your logo and for a profile's. The header gives the logo a square slot. Upload whatever shape you have, a wide wordmark or a tall badge, and it is scaled to fit and padded with transparency to a 512 by 512 PNG. Nothing is cropped and proportions are kept. Small icons are scaled up so a favicon does not render as a speck.

## What should a reseller know before launch?

> A small RoofQuery watermark remains in the PDF footer on branded reports. If your agreement with your own customers needs the document to carry no third-party mark at all, [talk to us](mailto:info@roofquery.com) before you launch.

The PDF route needs [no API key](https://roofquery.com/docs/sharing-a-report), so a branded report link can be handed straight to an estimator, a homeowner or an adjuster, or embedded in your own portal. Treat the link as you would the report: it carries the property address and the full measurements, and it does not expire.

For the business side, pricing models and what "resellable" actually covers, see [how to resell roof measurement reports](https://roofquery.com/guides/reselling-roof-measurement-reports). For how it fits a multi-customer product, see [adding roof reports to a roofing CRM](https://roofquery.com/guides/adding-roof-reports-to-a-roofing-crm).

## Frequently asked questions

### Can I resell RoofQuery roof reports under my own brand?

Yes. Set your company name, logo, colors and contact details once, and every PDF carries them. Per-download parameters let you brand individual reports for your own customers. A small RoofQuery watermark stays in the footer.

### Does the customer see RoofQuery anywhere?

Only as a small watermark in the PDF footer. The cover, header, contact block and attribution are yours. The XML has no branding at all.

### Can each of my customers have their own logo?

Yes. Create a brand profile per customer, upload their logo to it, and put the profile id on their PDF links as ?brand=. Name, contact details, colors and logo all come from the profile.

### What happens to old reports if I change my branding?

They re-skin on their next download, because PDFs are rendered at request time and nothing is cached.
