Monitoring
All browser signals, in one place.
Blocked scripts, failed connections, crashed tabs: browsers report them as real users browse. CentralCSP collects all of it with one response header.

How it works
From response header to alerts in your existing channels.
The pipeline between a visitor's browser and your team, end to end.
01 - Collect
Ship one header
Add Reporting-Endpoints at your CDN, proxy or framework. Legacy report-uri lands on the same endpoint.
02 - Process
Collected, deduped, classified
Browsers send reports in the background: visitors feel nothing. Every report is kept; duplicates group together and extension false positives get flagged.
03 - Act
Watch, alert, export
Filter the live feed, route alerts to your channels, pull the raw JSON over the API.
Setup
The whole setup is one header.
Add Reporting-Endpoints to your responses and browsers start delivering every report type to your endpoint.
Have a CSP already? Point its report-to at the same endpoint and every violation lands there too.
Verify your setup
Is your site already reporting?
Free, no account needed. Results land on a shareable page.
The scan verifies
- Policy setup: which report types your headers request
- Endpoint setup: where reports are sent and if it responds
- Misconfigurations: what silently gets dropped today
Aggregation
A million reports become a short list of issues.
Raw reports stay stored and queryable, but you work from the aggregate: grouped, deduped and ranked so the real problem surfaces first.

What we collect
Twelve report types. Three reasons to want them.
Most tools stop at CSP violations. Browsers can report much more, and every type below lands on the same endpoint, parsed and searchable.
Attack signals
The reports that catch injected code, tampered files and data leaving the page.
csp-violationCSP violations
A resource loaded, or tried to, against your Content Security Policy. Works enforced or report-only.
View docscsp-hashScript hashes
The hash of every script your pages execute. Your script inventory, and your PCI DSS 6.4.3 evidence, sourced from real traffic.
View docsintegrity-violationIntegrity violations
A file no longer matches its Subresource Integrity hash. Either your build changed it, or someone else did.
View docsconnection-allowlistConnection Allowlist violations
An outbound connection left the page for an origin you never declared. This is how exfiltration gets noticed.
View docsFailures your server never logs
These happen before the request reaches you, or after the page is dead. Only the browser can report them.
network-errorNetwork errors
DNS failures, TLS errors and dropped connections, logged by the browser that experienced them.
View docscrashCrashes
The tab crashed or ran out of memory. A dead page can't run a monitoring script; the Reporting API is the only witness.
View docsdeprecationDeprecations
Your pages call an API the browser plans to remove, with the removal date when the browser knows it.
View docsinterventionInterventions
The browser changed your page's behavior on its own: an autoplay denied, a slow script throttled.
View docsPolicy hygiene
Proof that the isolation and permission policies you ship actually hold in production.
permissions-policy-violationPermissions Policy violations
Code asked for camera, geolocation or another gated feature against your Permissions-Policy.
View docsdocument-policy-violationDocument Policy violations
A page behavior broke the configuration your Document-Policy declares.
View docscoopCOOP violations
A cross-origin window interaction your Cross-Origin-Opener-Policy blocked or would block.
View docscoepCOEP violations
A resource loaded without the opt-in your Cross-Origin-Embedder-Policy requires.
View docsCoverage
Reports from every visitor, everywhere.
Your monitoring runs wherever your users are: every browser, every network, every country your traffic comes from.
Full Reporting-API support
All 12 report types over both header generations, on one endpoint. If a browser can send it, we collect it.
Real-time signal
Reports hit your feed moments after the browser sends them, already deduped and classified. Alert rules fire as it happens.
Built for scale
1.5 billion reports ingested and counting. A violation spike on your busiest day is when the feed matters most, so it never falls behind.
After collection
Collection is half the job.
What the platform does with the reports once they're parsed.
Live dashboard
Filter the feed by report type, directive, browser or origin, and drill into any report's raw JSON.
- Feed filtered by type, directive, browser, origin
- Raw JSON for every report
- Per-site scores and inventories
Alert rules
New origin, hash change, violation spike: route what matters to the channels your team already uses.
- New-origin and hash-change rules
- Violation spike detection
- Slack, Teams, Google Chat, Telegram, email
API and MCP
Everything in the feed is queryable over the REST API, exportable as CSV, and drivable by AI agents over MCP.
- REST API with scoped tokens
- CSV and raw-report exports
- Built-in MCP server
CSP builder
Turn the collected violations into a Content Security Policy that fits your real traffic, then tighten it over time.
- Policy built from production reports
- Directive-by-directive suggestions
- Test in report-only first
PCI DSS evidence
The same reports feed a continuous script inventory of your payment pages, exported as auditor-ready evidence.
- Requirements 6.4.3 and 11.6.1
- Continuous script inventory
- Auditor-ready exports
Supply chain
Every script in your inventory is checked against known CVEs, so a compromised dependency doesn't stay quiet.
- Known CVEs flagged in your scripts
- New-script detection
- Fed by the same reports
FAQ
Frequently asked questions
Performance, privacy and browser support, answered.
Your next visitor can be your first report.
Add the header, watch the feed fill up with real traffic. 14-day free trial, no agent to deploy.
