The canonical PureStats tracker is `pf.js`. The default installation only needs `data-domain`; site-level behavior is loaded from PureStats automatically.

## Basic snippet

```html
<script defer src="https://purestats.io/pf.js" data-domain="example.com"></script>
```

## Attributes

| Attribute | Required | Description |
| --- | --- | --- |
| `data-domain` | Yes | Canonical PureStats site domain. |
| `data-api` | No | Custom event endpoint. Defaults to PureStats. |
| `data-config-api` | No | Custom tracker configuration endpoint. Derived from `data-api` by default. |
| `data-consent-mode` | No | Explicit client-side consent mode override. Prefer Site Settings. |
| `data-respect-dnt` | No | Explicit Do Not Track override. Prefer Site Settings. |
| `data-exclude-paths` | No | Client-side path exclusions for advanced deployments. Prefer Site Settings. |
| `data-cross-domain` | No | Explicit cross-domain stitching override. Prefer Site Settings. |
| `data-allowed-domains` | No | Explicit comma-separated alias list for cross-domain stitching. Prefer Site Settings. |
| `data-linker` | No | Enables or disables the optional cross-domain linker parameter. |

## First-party proxy

For first-party proxy setups, load `pf.min.js` from your own domain and set `data-api` to your proxied event endpoint:

```html
<script
  defer
  src="https://example.com/pf.min.js"
  data-domain="example.com"
  data-api="https://example.com/api/event"
></script>
```

The tracker derives `https://example.com/api/tracker-config` from `data-api` unless `data-config-api` is set explicitly. See [First-party proxy](/docs/installation/first-party-proxy) for server configuration examples.

When Core Web Vitals, active experiments, no-code events, site search or session replay require optional functionality, the core tracker loads `/pf-vitals.min.js`, `/pf-experiments.min.js`, `/pf-events.min.js`, `/pf-search.min.js` or `/pf-replay.min.js`. First-party proxies must forward and may cache these files in the same way as `/pf.min.js`.

## Event endpoint

The tracker sends events to:

```text
https://purestats.io/api/event
```

The API validates the domain or alias, path exclusions, consent state and bot/spam scoring before storing the event.

Before the first event, the tracker also reads:

```text
https://purestats.io/api/tracker-config
```

That response applies the current Site Settings without requiring extra attributes in the script tag.

## Browser support

The tracker is designed for modern browsers. If a browser blocks JavaScript, analytics events cannot be collected.

## Versioning

PureStats builds the minified tracker from source and exposes version/checksum metadata for release checks. Use `pf.js` as the public integration file.
