Skip to content

Change SDK behaviour without redeploying

The RUM SDK does not carry its capture rules in your bundle. It fetches them from SiteQwality at startup and refreshes them periodically, so you can change what gets captured without shipping a new build.

GET https://rum.siteqwality.com/v1/config
Authorization: Bearer <client_token>

The same public client token the SDK already holds authenticates the request, and the application is identified from that token rather than from a parameter.

{
"data": {
"application_id": "<uuid>",
"filters": [
{
"id": "<uuid>",
"name": "Sessions with errors",
"filter_type": "error",
"conditions": { "has_error": true },
"capture_replay": true,
"enabled": true,
"priority": 0,
"created_at": "2026-08-01T10:00:00Z"
}
],
"settings": {
"privacy": { "mask_inputs": true, "mask_text": false }
}
}
}

Only enabled filters are sent. Disabling one in the dashboard removes it from the payload entirely rather than shipping it with a flag.

priority is stored and returned but is not currently used to order evaluation. Filters are evaluated as a set, and a session activates if any of them matches.

Three things, and it is worth being clear about the boundary:

ChangeEffect
Add, edit or disable a session filterControls whether detail capture turns on for a session
Set capture_replay on a filterControls whether session replay starts
Change mask_inputs / mask_textControls replay masking

What you cannot change remotely: there are no sample rates in the configuration, and no global kill switch. Flush intervals, batch sizes and session timeouts are fixed in the SDK. Endpoint hosts can only be set locally in init().

If you need to stop collection entirely, disable every filter to stop detail and replay capture, and remove the init() call to stop the always-on measurements.

WhatWhere
Privacy settingsRUM → Settings → Privacy, or PUT /rum/{app_id} with settings.privacy
Session filtersRUM → Filters, or the /rum/{app_id}/filters endpoints

Defaults if you set nothing: mask_inputs is on, mask_text is off, and there are no filters, meaning no detail capture and no replay.

The condition keys the SDK evaluates:

filter_typeCondition keysMatches when
errorhas_errorThe session has thrown at least one error.
slow_performancelcp_gt_ms, cls_gtLCP or CLS exceeds the threshold.
customhas_user, min_actionsA user is identified, and/or the action count is reached.

Evaluation happens in the browser against the running session, so a session that turns bad partway through activates partway through.

Note that an error filter fires on any error in the session, regardless of what its conditions say.