Public MQTT broker statistics
Daily measurements of public MQTT brokers covering reachability, traffic, ports, protocol versions and payloads.
MQTT Viewer took the latest snapshot on 21 October 2026 from GitHub Actions ubuntu-latest (Azure, US).
Which public MQTT brokers are online
On 21 October 2026, 3 of 4 public brokers accepted an MQTT connection on at least one port in MQTT Viewer's daily check: test.mosquitto.org, broker.hivemq.com and broker.emqx.io. mqtt.eclipseprojects.io did not complete an MQTT connection on any port.
| Broker | Status | Ports accepting MQTT | Version ($SYS) | Online in the last 30 days |
|---|---|---|---|---|
| test.mosquitto.org | Online | 5 of 5 | mosquitto version 2.1.2 | 3 of 3 daily checks (100%) |
| broker.hivemq.com | Online | 4 of 4 | Not published | 3 of 3 daily checks (100%) |
| broker.emqx.io | Online | 4 of 4 | Not published | 3 of 3 daily checks (100%) |
| mqtt.eclipseprojects.io | No response | 0 of 4 | Not published | 0 of 3 daily checks (0%) |
Online in the last 30 days counts the daily checks on 21 October 2026 in which the broker accepted an MQTT connection on at least one port.
How busy are public MQTT brokers
On 21 October 2026, MQTT Viewer received about 2,518 messages per second from test.mosquitto.org during a 60-second subscription to #, across 18,652 distinct topics. broker.hivemq.com and broker.emqx.io refused the subscription to # and have no traffic sample. test.mosquitto.org reported 13,457 connected clients through $SYS.
| Broker | Messages/s received on # | Excluding retained | Distinct topics | Clients connected ($SYS) | Publishes received/s ($SYS) |
|---|---|---|---|---|---|
| test.mosquitto.org | 2,518 | 2,487 | 18,652 | 13,457 | 2,512 |
| broker.hivemq.com | Refused # | Not published | Not published | ||
| broker.emqx.io | Refused # | Not published | Not published | ||
| mqtt.eclipseprojects.io | Offline | Not published | Not published |
Messages/s counts what reached the collector, including retained messages the broker sends on subscribe. Excluding retained counts only live publishes. The $SYS columns are the broker's own figures for all clients. Publishes received is the broker's one-minute moving average, converted to per second.
Ports and TLS on public MQTT brokers
On 21 October 2026, MQTT Viewer completed an MQTT connection on 13 of 17 probed ports across 4 public brokers. test.mosquitto.org port 8883 uses the operator's own CA by design, so a client needs mosquitto.org.crt to connect with verification.
test.mosquitto.org
| Port | Transport | Result | CONNECT to CONNACK | TCP connect | TLS certificate |
|---|---|---|---|---|---|
| 1883 | TCP | OK | 147 ms | 145 ms | Not applicable |
| 8883 | TLS | OK | 288 ms | 148 ms | Operator's own CA by design (mosquitto.org.crt), TLSv1.3 |
| 8886 | TLS | OK | 294 ms | 148 ms | Verified, TLSv1.3, expires in 54 days |
| 8080 | WebSocket | OK | 149 ms | 150 ms | Not applicable |
| 8081 | WebSocket over TLS | OK | 150 ms | 148 ms | Verified, TLSv1.3, expires in 54 days |
broker.hivemq.com
| Port | Transport | Result | CONNECT to CONNACK | TCP connect | TLS certificate |
|---|---|---|---|---|---|
| 1883 | TCP | OK | 151 ms | 149 ms | Not applicable |
| 8883 | TLS | OK | 6,542 ms | 149 ms | Verified, TLSv1.2, expires in 102 days |
| 8000 | WebSocket, path /mqtt | OK | 155 ms | 149 ms | Not applicable |
| 8884 | WebSocket over TLS, path /mqtt | OK | 149 ms | 150 ms | Verified, TLSv1.2, expires in 102 days |
broker.emqx.io
| Port | Transport | Result | CONNECT to CONNACK | TCP connect | TLS certificate |
|---|---|---|---|---|---|
| 1883 | TCP | OK | 335 ms | 153 ms | Not applicable |
| 8883 | TLS | OK | 300 ms | 151 ms | Verified, TLSv1.3, expires in 87 days |
| 8083 | WebSocket, path /mqtt | OK | 334 ms | 22 ms | Not applicable |
| 8084 | WebSocket over TLS, path /mqtt | OK | 336 ms | 22 ms | Verified, TLSv1.3, expires in 87 days |
mqtt.eclipseprojects.io
| Port | Transport | Result | CONNECT to CONNACK | TCP connect | TLS certificate |
|---|---|---|---|---|---|
| 1883 | TCP | Failed: timed out | Not applicable | ||
| 8883 | TLS | Failed: timed out | Not checked | ||
| 80 | WebSocket, path /mqtt | Failed: timed out | Not applicable | ||
| 443 | WebSocket over TLS, path /mqtt | Failed: timed out | Not checked |
Latency is the median of three attempts from GitHub Actions ubuntu-latest (Azure, US). Network distance sets the floor, roughly the TCP connect time. A CONNECT to CONNACK time far above it means the broker held the CONNACK back.
MQTT versions supported
On 21 October 2026, test.mosquitto.org, broker.hivemq.com and broker.emqx.io accepted an MQTT 5 connection from MQTT Viewer on port 1883.
| Broker | MQTT 3.1.1 | MQTT 5 | Receive Maximum | Maximum Packet Size | Topic Alias Maximum | Shared subscriptions |
|---|---|---|---|---|---|---|
| test.mosquitto.org | Yes | Yes | 10 | 2,000,000 | 10 | Not stated |
| broker.hivemq.com | Yes | Yes | 10 | Not stated | 5 | Not stated |
| broker.emqx.io | Yes | Yes | 32 | 1,048,576 | 65,535 | Yes |
| mqtt.eclipseprojects.io | No | No |
The limits come from the broker's MQTT 5 CONNACK. Not stated means the broker left the property out, so the MQTT 5 default applies.
What payloads public brokers carry
On 21 October 2026, 38.1% of the messages MQTT Viewer sampled on test.mosquitto.org were JSON, 36.8% were bare numbers and 5.4% were binary.
| Broker | JSON | Number | Text | Binary | Sparkplug B | Empty |
|---|---|---|---|---|---|---|
| test.mosquitto.org | 38.1% | 36.8% | 19% | 5.4% | under 0.1% | 0.7% |
| Broker | Median payload | 95th percentile | Largest | Retained on subscribe |
|---|---|---|---|---|
| test.mosquitto.org | 18 bytes | 1,830 bytes | 111,165 bytes | 1,859 messages |
Topic depth, the share of messages by number of topic levels:
| Broker | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11+ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| test.mosquitto.org | 6.9% | 11.4% | 26.6% | 27% | 17.8% | 8.7% | 0.9% | 0.4% | under 0.1% | 0.2% | 0% |
Classes are checked in order. Empty has no bytes. Sparkplug B is any message under spBv1.0/. JSON parses as an object or array. Number is a bare decimal number such as 21.5. Text is any other valid UTF-8, including JSON strings and booleans. Binary is everything else.
Which ecosystems publish to public brokers
On 21 October 2026, Home Assistant topics carried 1.1% of the messages MQTT Viewer sampled on test.mosquitto.org, the largest share among the recognised namespaces.
| Namespace (topic prefix) | Share of messages | Distinct topics |
|---|---|---|
| Home Assistant (homeassistant/) | 1.1% | 1,567 |
| Shelly (shellies/, shelly) | 0.4% | 94 |
| Sparkplug B (spBv1.0/) | under 0.1% | 4 |
| Tasmota (tele/, stat/, cmnd/) | under 0.1% | 3 |
| Frigate (frigate/) | under 0.1% | 1 |
| OwnTracks (owntracks/) | under 0.1% | 1 |
| ebusd (ebusd/) | 0% | 0 |
| Meshtastic (msh/) | 0% | 0 |
| rtl_433 (rtl_433/) | 0% | 0 |
| The Things Network (v3/) | 0% | 0 |
| Valetudo (valetudo/) | 0% | 0 |
| Zigbee2MQTT (zigbee2mqtt/) | 0% | 0 |
Namespaces are matched against a fixed list of topic prefixes. The Tasmota prefixes tele/, stat/ and cmnd/ are also used by other software, so the figures are approximate. Messages outside the list count towards the totals.
Trends
MQTT Viewer's public broker history holds 3 snapshots, all taken on 21 October 2026.
test.mosquitto.org
The table lists every check on 21 October 2026. The CSV has every snapshot since 21 October 2026.
| Date | Broker | Online | Ports OK | Messages/s | Clients connected |
|---|---|---|---|---|---|
| 21 October 2026 | test.mosquitto.org | Yes | 5 of 5 | 2,518 | 13,457 |
| 21 October 2026 | broker.hivemq.com | Yes | 4 of 4 | ||
| 21 October 2026 | broker.emqx.io | Yes | 4 of 4 | ||
| 21 October 2026 | mqtt.eclipseprojects.io | No | 0 of 4 | ||
| 21 October 2026 | test.mosquitto.org | Yes | 5 of 5 | 2,524 | 12,910 |
| 21 October 2026 | broker.hivemq.com | Yes | 4 of 4 | ||
| 21 October 2026 | broker.emqx.io | Yes | 4 of 4 | ||
| 21 October 2026 | mqtt.eclipseprojects.io | No | 0 of 4 | ||
| 21 October 2026 | test.mosquitto.org | Yes | 5 of 5 | 2,523 | 12,801 |
| 21 October 2026 | broker.hivemq.com | Yes | 4 of 4 | ||
| 21 October 2026 | broker.emqx.io | Yes | 4 of 4 | ||
| 21 October 2026 | mqtt.eclipseprojects.io | No | 0 of 4 |
How these numbers were collected
The collector runs from GitHub Actions ubuntu-latest (Azure, US) every day at 02:17 UTC and takes a 60-second traffic sample per broker.
- Ports: three MQTT 3.1.1 connection attempts per port, each with a fresh client id and a 10 second timeout. CONNECT to CONNACK and TCP connect times are the median of the successful attempts.
- TLS: certificates are verified against the runner's system CA store. A port that fails verification is retried without it, and the failure is recorded. test.mosquitto.org port 8883 is signed by mosquitto.org's own CA by design and is listed as a private CA. Its ports 8886 and 8081 use Let's Encrypt.
- MQTT 5: one CONNECT with protocol level 5 on the broker's main TCP port.
- $SYS: a 10 second subscription to $SYS/#. The collector keeps the version string and a fixed set of normalised values such as connected clients and one-minute load, and discards the rest.
- Traffic: a QoS 0 subscription to # for the sample length, capped at 1,000,000 messages. A broker that refuses # is recorded as refused and gets no traffic sample. The collector does not publish.
- Recorded: counts, rates, latencies, payload sizes and the fixed namespace names. Topic names, client ids and payloads are discarded after counting. Distinct topics are counted from truncated SHA-1 hashes held in memory, discarded at the end of the run.
- public.mqtthq.com was removed from the list in October 2026, before the first snapshot, because its host name no longer had an address record.
- Scope: the main unauthenticated ports. EMQX's QUIC port 14567 and ports that need credentials are left out.
Collector source: scripts/broker-stats on GitHub.
Download the data
The CSV has one row per snapshot and broker, 12 rows as of 21 October 2026.
- public-mqtt-brokers.csv: date, location, broker, reachability, port counts, MQTT 5, messages per second, distinct topics, clients connected and payload class percentages.
- history.json on GitHub: every measured field, including per-port latency and $SYS values.
Cite this page
The data is published under CC BY 4.0. Suggested attribution:
MQTT Viewer, "Public MQTT broker statistics", snapshot of 21 October 2026, https://mqttviewer.app/learn/public-mqtt-brokers
Frequently asked questions
Is test.mosquitto.org free to use?
test.mosquitto.org is free to use for any application, without an account. The Eclipse Mosquitto maintainers run it and ask users not to rely on it for anything important. It often runs unreleased or experimental code.
Should production devices use a public MQTT broker?
A public broker is unsuitable for production devices. Any client can subscribe and publish to the same topics, there is no authentication or uptime guarantee, and the operator can restart, rate limit or change the broker at any time. Production devices need a private or managed broker with credentials and TLS.
Which public MQTT broker supports MQTT 5?
test.mosquitto.org, broker.hivemq.com and broker.emqx.io accepted an MQTT 5 connection in MQTT Viewer's daily check on 21 October 2026. The check runs every day at 02:17 UTC.
Which ports do public MQTT brokers use?
Plain MQTT uses 1883 and MQTT over TLS uses 8883 on most public brokers. WebSocket ports differ by broker. MQTT Viewer's daily check probes test.mosquitto.org 1883 (TCP), 8883 (TLS), 8886 (TLS), 8080 (WebSocket) and 8081 (WebSocket over TLS); broker.hivemq.com 1883 (TCP), 8883 (TLS), 8000 (WebSocket) and 8884 (WebSocket over TLS); broker.emqx.io 1883 (TCP), 8883 (TLS), 8083 (WebSocket) and 8084 (WebSocket over TLS); mqtt.eclipseprojects.io 1883 (TCP), 8883 (TLS), 80 (WebSocket) and 443 (WebSocket over TLS). More on MQTT ports.
More on MQTT ports and $SYS topics.
MQTT Viewer is free and open source, and runs on macOS, Windows and Linux.
Download MQTT Viewer