> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gethinto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Privacy controls

> What the browser SDK captures, what it never captures, and how to tune redaction.

The SDK records what your app did, not what your users typed. Its defaults are deny-first: it keeps as little as possible, and scrubs what it does keep before anything leaves the browser.

## What is never captured

* Form values and keystrokes
* Request and response bodies
* Headers and cookies
* Full query strings, which are stripped by default from every captured URL

## What redaction covers

Every captured URL, including its path segments, and every payload string passes through redaction patterns before it leaves the browser. The built-in patterns scrub email addresses, bearer tokens, sensitive query parameters such as `token`, `secret`, `password`, API keys and suffixed forms like `reset_token`, OAuth `code` values, and long opaque strings such as hex ids and API tokens.

## Tuning

Two config knobs let you adjust this:

```js theme={null}
initHinto({
  ingestUrl: "https://your-hinto-api-host/v1/ingest",
  apiKey: import.meta.env.VITE_HINTO_INGEST_KEY,
  // Keep named query parameters in captured URLs. The default keeps none.
  allowUrlSearchParams: ["page"],
  // Replace the built-in redaction patterns with your own. This applies to
  // both URLs and payloads.
  redactPatterns: [/\/reset\/[A-Za-z0-9]+/g],
});
```

`allowUrlSearchParams` is an allowlist of query parameter names. The redaction patterns still run over whatever survives, so a parameter named like a secret is scrubbed even when allowlisted. Allowlist a parameter only if you are comfortable capturing its values.

`redactPatterns` replaces the default list rather than extending it, so include the built-in shapes you still want alongside your own (for example, a custom pattern for short path tokens like `/reset/AbC123` that the defaults do not catch).

Before production, review what your app prints to the console, and treat captured sessions with the same care as your own logs.
