rtcStats vs callstats.io
callstats.io was acquired in 2022 and shut down afterwards. If you are replacing it, or you inherited a callstats.js reference in a codebase, here is how rtcStats compares and what it does differently.
Why choose rtcStats?
It is here, and the code is yours
The collection layer is open source and runs in your own infrastructure. A monitoring tool that disappears takes your call history with it, unless the data was never on somebody else's servers to begin with.
It tells you what went wrong
More than a hundred quality issues are detected automatically as Observations and explained in plain English, rather than handed to you as another wall of charts to interpret at eleven at night.
It fits the way you work now
A REST API and an MCP server mean a session can go straight into a script, a dashboard you already have, or the AI assistant you are debugging with.
At a glance
| callstats.io | rtcStats | |
|---|---|---|
| Available today | No | Yes |
| Delivery model | SaaS, cloud only | Open-source collector plus hosted analysis |
| Open source | No, proprietary service | Yes, client and server |
| Client-side getStats() collection | Yes | Yes |
| Aggregation across conference participants | Yes | Yes |
| Dashboards and quality alerting | Yes | Yes |
| Runs in your own infrastructure | No, hosted service | Yes, rtcstats-server |
| You choose which sessions leave your network | No | Yes, forwarding off by default |
| API and MCP server | API only, no MCP | Yes, both |
| Automated fault detection | Charts for you to read | 100+ issues flagged as Observations |
| AI summary of what went wrong | No | Yes |
Available today
Delivery model
Open source
Client-side getStats() collection
Aggregation across conference participants
Dashboards and quality alerting
Runs in your own infrastructure
You choose which sessions leave your network
API and MCP server
Automated fault detection
AI summary of what went wrong
What you get with rtcStats that callstats.io never did
Own your data
rtcstats-js and rtcstats-server run in your client and your own infrastructure, so raw session data lands somewhere you control. Forwarding to our hosted analysis is off by default, and what you send is configurable: a sample, one user, one region, or just the session behind this morning's complaint. Teams that sent everything to callstats.io did not lose a dashboard when it closed, they lost their history.
See what actually happened
A session opens as a timeline you can read: connections, devices, streams and logs, lined up so the moment the call degraded is visible alongside everything else happening at that moment. Faults are marked for you rather than left to be found by scrolling, and you can share the view as a link with a colleague or a customer who has no account.
Run at any scale
Because the collector is yours, collection scales with your own infrastructure rather than a vendor's ingest tier. Sample a small percentage continuously and still capture every session that crossed a quality threshold, so the calls you care about are never the ones you sampled away. At the other end, upload a single dump by hand and get the same analysis with nothing deployed.
Frequently asked questions
- No. The callstats.io business was acquired in 2022 and the service was shut down afterwards. The domain now redirects to an unrelated website and the dashboard host no longer resolves. If you still have a callstats.js reference in a codebase, it is dead code.
- rtcStats is the best choice. It has open source client-side collector and server side aggregation so the data survives whatever happens to us as a company. The dashboards and visualization we offer are the best in the market for WebRTC troubleshooting.
- Yes. The rtcStats collection layer is open source, so rtcstats-js runs in your client and rtcstats-server runs in your own infrastructure. Forwarding to the hosted analysis is off by default, and you choose what goes: a random sample, one user, a region, sessions that cross a quality threshold, or a single session behind a complaint.
- The collection layer is. rtcstats-js and rtcstats-server are published at github.com/rtcstats/rtcstats and you can run them without sending us anything. The analysis layer, which produces Observations, Deductions and the Experience Score, is a commercial hosted product.
- No. You can upload an existing dump by hand and get the full analysis back without deploying anything. Most people evaluate that way first, using a call that already went wrong, and only integrate the collector once they know the analysis is telling them something useful.
- Yes, a REST API for uploading sessions and retrieving observations, deductions and results, plus an MCP server so a session can be pulled directly into an AI assistant or coding agent.
- The callstats-io GitHub organisation is still public and readable, which is why stale integration code keeps surviving in production codebases long after the service stopped answering. The repositories being visible does not mean the service is running. There is nothing behind the SDK any more.
- Yes. There is a free plan with no credit card required, and the first month runs at full Developer-level analysis so you can see what the paid tiers actually do before deciding anything. The pricing page has the current tiers.
- Yes. Collection happens in the browser through getStats(), so it does not depend on your media server, and there are integration guides for the common ones including Jitsi, LiveKit, mediasoup, Janus and Vonage. If you inherited a callstats.js integration, the shape of the work is similar: instrument the client, point it at a collector.
This comparison is based on an analysis of publicly available information researched in August 2026. Products change. If something here is out of date, tell us and we will correct it.
Try it on a real session
Free plan, no credit card. Upload a dump and see what the analysis says about a call that went wrong.
Get started free