WebTransport works in Chrome 97+, Edge 98+, Firefox 114+, Safari 26.4+, Opera 83+, and Samsung Internet 18+. Learn the API, features, and limits.

Prince Dewani
May 1, 2026
WebTransport is a W3C JavaScript API that lets a web page open a low-latency, two-way session to an HTTP/3 server over QUIC. It works in Chrome 97+, Edge 98+, Firefox 114+, Safari 26.4+ on macOS and iOS, Opera 83+, and Samsung Internet 18+, while Internet Explorer and Opera Mini never shipped support.
This guide covers what WebTransport is, the browsers that support it, the key features, the WebSocket comparison, the use cases, and the known issues.
WebTransport is a W3C JavaScript API that runs over HTTP/3 and QUIC and lets a page open multiple reliable streams and unreliable datagrams to a server through one connection. The entry point is the WebTransport constructor, which takes an https URL and returns a session object.
WebTransport ships in every current Chromium browser, in Firefox, and in the latest Safari, with Safari 26.4 closing the gap that pinned the API to a Chromium-only audience for years.
Chrome supports WebTransport from Chrome 97 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 91 to 94 had WebTransport behind an Origin Trial flag, and Chrome 4 to 90 did not support it. The wire format follows the IETF WebTransport over HTTP/3 draft and runs through the upstream Chromium QUIC stack on every supported version.
Microsoft Edge supports WebTransport from Edge 98 on Windows, macOS, and Linux. Edge tracks the upstream Chromium implementation, so behavior matches Chrome 98 on the same OS. Pre-Chromium EdgeHTML versions 12 to 18 do not support WebTransport at all.
Firefox supports WebTransport from Firefox 114 on Windows, macOS, Linux, and Android. Firefox 2 to 113 did not expose the WebTransport constructor. Firefox uses the neqo QUIC stack written in Rust, so the implementation is independent from Chromium and tends to surface protocol bugs first.
Safari supports WebTransport from Safari 26.4 on macOS and from Safari 26.4 on iOS and iPadOS. Safari 3.1 through Safari 26.3 do not expose the WebTransport constructor on the window object, so any page that targets older iPhones or iPads needs a WebSocket fallback. The Safari implementation is the change that closed the last gap in cross-browser WebTransport support.
Opera supports WebTransport from Opera 83 on Windows, macOS, and Linux, which is the Chromium 97 base. Opera 9 to 82 did not support it. Opera Mobile 80+ ships the same Chromium QUIC stack on phones and tablets, while Opera Mini does not expose the WebTransport interface in any version because it proxies traffic through Opera servers.
Samsung Internet supports WebTransport from Samsung Internet 18 on Galaxy phones and tablets. The browser tracks the Chromium WebTransport implementation, so any current Samsung Internet release on a recent Android device exposes the same WebTransport constructor as Chrome for Android. Samsung Internet 4 to 17 did not support WebTransport.
Chrome for Android supports WebTransport from Chrome 97 on phones and tablets, which covers every device on a current Android release. Firefox for Android also supports WebTransport from Firefox 114. The legacy stock Android Browser based on WebView 3.x and earlier does not support WebTransport.
Internet Explorer 5.5 through Internet Explorer 11 do not support WebTransport. Microsoft has retired Internet Explorer, so any page that needs WebTransport on Windows should target Chromium-based Edge instead. There is no polyfill that can deliver WebTransport over HTTP/3 to Internet Explorer.
Note: WebTransport behaves differently across browsers, OS, and corporate networks that filter UDP. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
WebTransport gives a page four primitives that WebSocket and fetch streaming cannot deliver together: unreliable datagrams, multiple ordered streams over one connection, native HTTP/3 transport, and a Promise-based API that fits modern JavaScript.
Paste this snippet into the DevTools console of Chrome 97+, Edge 98+, Firefox 114+, or Safari 26.4+ to confirm WebTransport support and watch a session open.
// Paste this into the DevTools console to confirm WebTransport support and open a test session.
if (typeof WebTransport === "function") {
console.log("WebTransport is supported in this browser.");
const transport = new WebTransport("https://echo.webtransport.day");
transport.ready
.then(() => {
console.log("WebTransport session opened over HTTP/3.");
const writer = transport.datagrams.writable.getWriter();
writer.write(new TextEncoder().encode("hello from TestMu AI"));
writer.close();
})
.catch((error) => {
console.log("WebTransport handshake failed:", error.message);
});
transport.closed
.then((info) => {
console.log("Session closed cleanly with code", info.closeCode);
})
.catch((error) => {
console.log("Session closed with error:", error.message);
});
} else {
console.log("WebTransport is not supported in this browser.");
}WebTransport and WebSocket both keep a long-lived channel open between a browser and a server, but the underlying transport, the delivery model, and the failure modes are different in ways that change the architecture of a real-time app.
| Dimension | WebTransport | WebSocket |
|---|---|---|
| Underlying protocol | HTTP/3 over QUIC over UDP | HTTP/1.1 Upgrade over TCP |
| Streams per connection | Many ordered streams plus datagrams | One ordered stream |
| Delivery modes | Reliable streams and unreliable datagrams | Reliable, ordered messages only |
| Head-of-line blocking | None across streams, since QUIC isolates them | One slow message stalls every later message |
| Connection migration | Survives Wi-Fi to LTE handoff | Breaks when the TCP four-tuple changes |
| Browser reach | Chrome 97+, Edge 98+, Firefox 114+, Safari 26.4+ | Every browser, near 99% global support |
| Standards body | W3C API plus IETF WebTransport over HTTP/3 | WHATWG HTML for the API plus IETF RFC 6455 |
| Best fit | Games, media, low-latency dashboards | Chat, presence, broad-reach real-time apps |
WebTransport fits any product that needs sub-100-millisecond, server-pushed updates and where a dropped message or a slightly out-of-order frame is cheaper than waiting for a retransmit. The pattern that locks teams into WebTransport is mixed reliable and unreliable traffic over the same session.
WebTransport buys low latency at the cost of HTTP/3, QUIC, and UDP plumbing that traditional web infrastructure does not always handle cleanly. The painful failures cluster around UDP filtering, server tooling, certificate setup, and the gap between specification drafts.
In my experience, the issue that bites teams hardest is the UDP block on corporate and hotel networks. A WebTransport-only build that works on home Wi-Fi falls silent the moment a tester opens a laptop in a coworking space, because port 443 UDP is filtered and the page never tries the TCP fallback. Wire a WebSocket fallback path before you ship a WebTransport feature to production.
All WebTransport version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance