Free to start ยท live updates ยท No coding required

Your MQTT data,
live on your dashboard

Connect to any MQTT broker, subscribe to your topics, and watch your device data stream live, automatically translated from JSON, Hex, Binary, or plain text. Stored per message. Accessible via API.

Start for free โ†’Try live demoSee how it works
mqttbridge ยท live ยท broker.emqx.io ยท sensors/#
โœ“ Connected to broker.emqx.io - subscribed to sensors/#
3 messages received ยท auto-translate ON ยท storing to database
โ€บ sensors/temperature โ†’ temperature: 23.4 ยท humidity: 61 (from JSON)
โ€บ sensors/pressure โ†’ 65 hPa (decoded from 0x0041 hex)
โ€บ sensors/valve โ†’ 1 [0x01] (1-byte binary ยท uint8)
_
0
Supported data formats
0+
Messages stored per subscription
0s
From broker connection to live dashboard
0 days
Free plan retention ยท up to 1 year on Pro
Features

Everything you need to monitor
any device in real time

No infrastructure to manage. No backend to host. Just connect, subscribe, and watch your data flow.

๐Ÿ”Œ

Any MQTT Broker

Connects to any broker accessible over MQTT, public or private. Supports mqtt://, mqtts://, ws:// and wss://. Paste your URL and topic and you're live.

โšก

True Real-Time Streaming

Messages arrive via Supabase Realtime the moment your device publishes, with a polling fallback. Your dashboard reflects exactly what your device is doing - right now.

๐Ÿ”„

Automatic Data Translation

Choose your format โ€” JSON, Hex, Binary, or plain text โ€” and every incoming message is decoded into clean, human-readable values automatically.

๐Ÿ””

Alert Rules & Notifications

Set threshold-based rules per subscription. Get notified on your dashboard, via Telegram (up to 5 recipients), or by email when a value crosses a threshold. All-clear notifications fire automatically when conditions normalise. Configurable cooldown per rule.

โ†‘

Two-Way: Publish to Devices

Send commands or data back to your device directly from the dashboard. Supports all four formats. Use a custom topic override to publish to any channel on the same broker.

๐Ÿ”—

Shareable Live Views

Generate a public share link for any subscription or device group. Optionally protect it with a password. Revoking the link disconnects active viewers within 30 seconds โ€” no lingering access.

๐Ÿ“ฆ

Message History & Export

Every message is stored in your database. Browse the last 100 messages live, load more history on demand, export to CSV or JSON at any time, or query everything via API key.

โธ

Pause & Resume

Pause any subscription to stop receiving and storing messages without deleting it. The broker connection disconnects cleanly. Resume with one click.

๐Ÿ”‘

Personal API Keys

Generate named API keys from settings. Read your messages, list subscriptions, or publish data from any script or frontend - no session needed, just the key.

๐Ÿ”—

Webhooks

Forward every incoming message to any HTTP endpoint automatically - Home Assistant, n8n, Zapier, or your own API. Each webhook includes an HMAC-SHA256 signature for verification.

๐Ÿ”

Message Search

Search through your message feed instantly by payload content. Matches are highlighted in the results. Works across both raw and translated payloads.

๐Ÿ“Š

Plans & Limits

Free plan stores 1,000 messages per subscription, retained for 7 days. Builder stores 10,000 for 60 days. Pro stores 100,000 for 1 year. Oldest messages are pruned automatically.

โšก

WebSocket Streaming API

Open a persistent WebSocket connection to receive every message the millisecond it arrives - no polling. One click copies the ready-to-use stream URL from the dashboard.

๐Ÿ“‚

Subscription Groups

Organise subscriptions by device โ€” group all topics from one machine together, give the group a name and colour, and share the entire group under a single link. Perfect for multi-sensor setups.

๐Ÿ”ด

Anomaly Detection

The live chart automatically flags statistical outliers in your data โ€” points more than 2 standard deviations from the mean are highlighted in red with a glowing marker and tooltip warning. No configuration needed.

๐Ÿ“ฑ

Multiple Telegram Recipients

Add up to 5 named Telegram accounts per user โ€” your phone, a colleague, a group chat. Every alert fans out to all recipients simultaneously. Test each one individually from Settings.

๐Ÿ“ง

Email Alerts

Enable email delivery per alert rule. Up to 3 emails per day on Free, 5 on Builder, 10 on Pro. Each email shows the rule, the triggering value, subscription, timestamp, and a direct dashboard link.

๐Ÿ’ฌ

Feedback & Support

A feedback button on every page lets you report bugs, request features, or ask questions directly. Submissions are reviewed personally โ€” no ticket system, no bot.

How it works

Up and running in 3 steps

No configuration files. No CLI. Just a browser.

1

Enter your broker and topic

Sign in, open your dashboard, and click New Subscription. Enter your broker URL and the topic your device publishes to. Optionally add a label, username, and password if your broker requires auth. Choose your data format.

mqtt://broker.emqx.io ยท topic: factory/sensors/#
2

We connect and start translating

MQTTBridge connects to your broker instantly and subscribes to the topic. Every incoming message is decoded, JSON fields are extracted, hex values are converted, binary bytes are interpreted, and stored with a timestamp.

{"temp": 23.4, "rh": 61} โ†’ temp: 23.4 ยท rh: 61
3

Monitor, alert, share, and export

Your dashboard updates in real time. Switch between list view and dashboard view for live tiles and a time-series chart. Set alert rules, share a live link, publish commands back, or pull the data into your own project via API.

GET /api/messages/{id} ยท x-api-key: mqttb_xxx
Data formats

Whatever your device sends,
we translate it

Choose the format when creating a subscription. Every incoming payload is decoded automatically, no code required on your end.

JSON
IN{"temp": 23.4, "unit": "C"}
OUTtemp: 23.4 ยท unit: C

Nested objects are flattened. Arrays of values are listed inline. Each key-value pair is readable at a glance.

Hexadecimal
IN0x0041
OUT65 (0x0041)

Strips 0x prefix, validates hex chars, attempts UTF-8 decode. If printable, shows text, otherwise converts to decimal via BigInt.

Binary
IN00000001
OUT1 [0x01]

Interprets by byte length: 1 byte โ†’ uint8, 2 bytes โ†’ uint16/int16, 4 bytes โ†’ float32 or uint32, 8 bytes โ†’ float64.

Plain text
IN23.4
OUT23.4

Raw string passed through as-is. Useful for simple sensors that publish a single value or status string.

API Access

Use your data in
your own projects

Generate named API keys from your settings. Use them to read messages, list subscriptions, publish payloads, or open a live WebSocket stream - all from any script, frontend, or automation tool. No login or session required.

  • โœ“Read up to 100 messages per request with ?limit= (default 50)
  • โœ“Fetch just the latest message with /latest
  • โœ“Publish to any topic from external code
  • โœ“List subscriptions with credentials excluded
  • โœ“Track last-used timestamp per key
  • โœ“Generate and revoke keys anytime from Settings
  • โœ“Webhook delivery - POST to any URL on every incoming message
  • โœ“WebSocket streaming - persistent connection, messages pushed instantly
// Pull your latest sensor messages
const res = await fetch(
  'https://mqttbridge.app/api/messages/{subscription_id}',
  { headers: { 'x-api-key': 'mqttb_your_key_here' } }
);
const { messages } = await res.json();
// [{ translated_payload: "temp: 23.4", received_at: "..." }, ...]
Security

Your credentials are never
stored in plain text

We take security seriously for a tool that holds live connections to your devices. Here is exactly what we do.

๐Ÿ”’Broker credentials encrypted with AES-256-CBC
๐Ÿ”‘API keys hashed with SHA-256 - raw key never stored
๐Ÿ›ก๏ธJWT session verified on every authenticated request
๐ŸšฆRate limiting on all routes - 3 tiers by sensitivity
๐ŸงนAll inputs sanitised and validated before processing
๐ŸŒSSRF protection - internal IPs blocked on broker URLs
๐Ÿ”TLS enforced by default, opt-out for self-signed certs
๐Ÿ“ตError messages never expose internal stack traces
How broker credentials are handled
You enter username + password
โ†’
Encrypted with AES-256-CBC + random IV
โ†’
Stored as iv:ciphertext, never plaintext
โ†’
Decrypted only at MQTT connect time

Compatible brokers

Works with any MQTT broker

Public or private. Tested against the most common public brokers. Bring your own private broker with or without TLS.

EMQX
broker.emqx.io
โœ“ tested
HiveMQ
broker.hivemq.com
โœ“ tested
Mosquitto
test.mosquitto.org
fully supported
Private broker
mqtt://your-host:1883
fully supported
Private broker (TLS)
mqtts://your-host:8883
fully supported

Ready to see your devices live?

Create a free account. Add your broker. Your data starts flowing in seconds - no credit card, no backend, no setup.

Get started - it's free โ†’Open dashboard