Browser vendors announce removals long before they happen, and the browser warns any page still using the feature. Those warnings sit in a console nobody has open. Deprecation Reports collect them from your real visitors instead, so you find out while there is still time to act.
Deprecations on the web are unusually well signposted. A vendor announces the intent to remove, ships a console warning, gives a timeline, and only then takes the feature away. The problem is purely one of delivery: that warning appears in developer tools, on a device you do not own, in a session you will never see. By the time anyone notices, the notice period you were given has usually already been spent.
A deprecation notice is written for a developer with the inspector open on the affected page. Your visitors are not that person, and the pages most likely to be affected are rarely the ones anyone is actively debugging.
An embedded widget, an analytics tag or a dependency several layers down can rely on something scheduled for removal. You inherit the breakage without ever having made the decision, and your own codebase gives no sign of it.
Handled early, a deprecation is a scheduled piece of maintenance. Missed, it becomes a feature that stops working in a browser release, on a date you did not choose, and gets discovered by customers rather than by you.
One response header redirects deprecation notices out of the console and into your account, aggregated across every visitor rather than confined to whoever happened to be looking.
The browser sends a report when a page uses something the vendor intends to remove, along with what is being deprecated and, where the vendor has given one, when it is scheduled to happen. That converts a future outage into a dated item you can plan around.
Learn more about the Reporting API →Reports carry the script and position that triggered the deprecation, which is usually the fastest way to discover the dependency is not yours. A finding attributed to a third-party tag becomes a conversation with a vendor rather than a search through your own repository.
Learn more about Script Watch →A deprecation on a page nobody visits is a different problem from one firing on your checkout thousands of times a week. Because reports come from real sessions, the counts tell you which items are worth scheduling now and which can wait — a judgement a console warning cannot help you make.
Learn more about Intervention Reports →One header. No code. Reports arrive from your real visitors' browsers.
30-day free trial · One header · No code · Cancel anytime
Reports are built to be actionable rather than descriptive. What is going away, who asked for it, and how often are the three things you need to schedule the work.
| Reported | What it tells you |
|---|---|
| Deprecated feature | The API or behaviour the vendor intends to remove |
| Source file | The script that used it — frequently a third party rather than you |
| Line and column | Where in that file the call was made |
| Page URL | Which of your pages the dependency is reachable from |
| Anticipated removal | When the vendor expects to take it away, where one has been stated |
| Occurrence count | How much of your traffic is affected, so the work can be prioritised |
What gets reported follows each vendor's own deprecation plans, so the set of features involved changes over time and differs between browsers.
Deprecation reporting is part of the browser, delivered over the Reporting API. Nothing of ours runs on your pages and no traffic is routed through us — the browser observes its own behaviour and sends the report to your endpoint.
One header enables the whole Reporting API. The same record covers deprecation, intervention and crash reports.
Report-To: {"group":"default","max_age":31536000,
"endpoints":[{"url":"https://your-subdomain.report-uri.com/a/d/g"}]}
Your unique endpoint is on your Setup page once you have an account. Nothing else is required — the browser decides when there is something worth reporting.
The Reporting API is a single mechanism carrying several kinds of message from the browser. Deprecation reports warn that something on your page is scheduled to stop working. Intervention reports tell you the browser has already overridden what your page asked for. Crash reports record sessions that ended when the browser gave out.
All three arrive through the same header, so once you have deployed it for one, the others cost nothing further.
Deprecation Reports are about what is scheduled to stop working. They do not tell you what is broken today, and they do not describe what the browser has already changed — this is the forward-looking signal, and it works alongside the rest.
| Deprecation Reports do | Pairs with |
|---|---|
| Warn before a feature is removed | Intervention Reports for behaviour the browser has already overridden |
| Attribute the usage to a specific script | Script Watch for the inventory of what those scripts are |
| Rank findings by real traffic volume | Crash Reports for sessions that ended badly |
| Turn an outage into scheduled work | Network Error Logging for visitors who never arrived |
Together, these use the browser's own reporting to describe what your visitors experienced, rather than what your servers believe they served.