Configuration
Every widget, capture and branding option, its default, and where it is set.
Widget settings live per project on the server, not in your snippet. You change them in the dashboard
(the project's Widget, Capture, Actions and Privacy & data tabs), they are stored in the database, and the widget fetches them on every page load from
GET /w/config. A change reaches every page that embeds the project at the next load — no redeploy. Only
organisation owners and admins can change these settings; members see the tabs read-only.
The server always sends every key with its default filled in, and the widget validates each value again before using it: an unknown or malformed value falls back to its default instead of breaking the page.
{
"project": { "name": "Marketing site", "slug": "marketing-site", "publicRead": true },
"widget": {
"launcher": { "position": "bottom-right", "accent": "#d63a1c" },
"modes": { "comment": true, "bug": true }
},
"capture": { "console": "warnings", "network": "failures" },
"branding": { "hidePoweredBy": false, "dialogAccent": null, "logoUrl": null },
"activeRound": { "id": "…", "name": "Homepage v2" }
}activeRound is the project's review round while exactly one is active
(otherwise null); the server files new feedback from the widget into it.
On the page itself you can only override the launcher colour (data-accent or the accent init option) and
the language (data-locale / locale) — see Install.
Launcher
Set on the Widget tab, in the Launcher card, with a live preview.
Prop
Type
Behaviour
Mostly on the Widget tab (Behaviour and Consent notice cards); panel actions are on the Actions tab and privacy mode on Privacy & data.
Prop
Type
The project's Show existing pins to visitors switch (Privacy & data tab; publicRead, off by default for new projects)
decides whether visitors see existing feedback at all. When it is off, the widget shows no markers and the launcher offers no sidebar (beyond what this browser sent) —
people can still send feedback.
See Panel actions and Privacy & masking for those two settings in detail.
Visibility
Set on the Widget tab, in the Where it shows card (Environments: Everywhere / Not in production, and Minimum screen width).
Prop
Type
The rules run in the browser only; data-force-show overrides them. Details in
Visibility & page scope.
Capture
Set on the Capture tab: Diagnostics (including screenshot quality), Session replay, Screen recording and Masked elements.
Prop
Type
What each level records, and how URLs are redacted, is described in Bug reports.
Branding
Set on the Widget tab, in the Widget branding card.
Prop
Type
Hiding “Powered by” needs a licence
hidePoweredBy only takes effect with an Enterprise licence that has the white_label entitlement; without
one, the setting is kept but /w/config sends false. It is the only gated setting — see Editions &
licensing.
Privacy mode changes what the server sends
With privacyMode on, /w/config always returns consent.enabled: true and caps capture.console at
"errors", whatever is stored. Team-only and webhook panel actions are never sent to the page.
Limits enforced by the server
| Limit | Value |
|---|---|
| Reports and replies per IP | 10 per minute per project by default (WIDGET_RATE_LIMIT_PER_MIN, or the project's own limit under Privacy & data › Abuse protection, 1–1000) |
| Reports per project | 120 per minute from all addresses together (WIDGET_PROJECT_REPORTS_PER_MIN) |
| Stored files per project | 500 MB of screenshots, attachments and replays per hour (WIDGET_PROJECT_MB_PER_HOUR) |
| Report size | 48 MB as one request, with a Content-Length; replies and status changes 64 KB |
| Page URL | http:// or https:// only (page.url, up to 2,000 characters) |
| Comment body | 10,000 characters |
| Screenshot | PNG, JPEG or WebP data URL |
| Attachments | 3 files, 5 MB each, PNG, JPEG, WebP, GIF or PDF |
| Session replay | 10 MB (gzip), only stored when capture.replay.enabled is on |
| Pins returned for a page | 100 most recent open items |
Over the per-address limit the API answers 429 RATE_LIMITED, over the project caps 429 PROJECT_RATE_LIMITED or
429 PROJECT_STORAGE_LIMITED; the widget shows the message and keeps bug reports in its
offline outbox. A body that is too large is refused with
413 PAYLOAD_TOO_LARGE, a report without Content-Length with 411 LENGTH_REQUIRED — see
bug report limits.