Free to use ยท No server to host ยท Start in seconds

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 โ†’See 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
0+
API routes & endpoints
0%
Free โ€” no backend required
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 or via Telegram when a value goes above, below, or equals a limit. 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. Anyone with the link sees your live data stream โ€” no account needed. Revoke the link anytime.

๐Ÿ“ฆ

Message History & Export

Every message is stored in your database. Browse the last 50 per subscription, 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.

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, or publish payloads from any script, frontend, or automation tool โ€” no login or session required.

  • โœ“Read up to 200 messages per request with ?limit=
  • โœ“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
// 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