REST API Bridge

One POST Request,
Instant MQTT

Publish to any MQTT topic with a single HTTP call. No connections to manage, no libraries to install.

Serverless Native
Zero Connection Overhead
Fire & Forget
~100ms
Avg. latency
0
Connections to manage
∞
Scale on demand
Your Backend
Lambda β€’ Cron β€’ API Server
POST
CloudSignal REST Bridge
HTTP β†’ MQTT translation
Mobile App
Web Client
IoT Device
// That's it. One request.
await fetch('api.cloudsignal.app/v1/publish', {...})

When to Use REST API vs MQTT

Choose the right approach for your architecture

Use REST API When...

  • Your backend doesn't need to stay online continuously
  • You're using serverless functions (Lambda, Vercel, Workers)
  • You can't install MQTT client libraries
  • You only need to publish, not subscribe
  • You want to avoid connection management complexity
  • Cost efficiency matters more than latency

Use Direct MQTT When...

  • You need to subscribe and receive messages in real-time
  • Your app maintains long-running connections (web apps, mobile)
  • Sub-second latency is critical
  • You're building a browser app with WebSocket support
  • You need QoS 2 exactly-once delivery
  • Bidirectional communication is required
Learn about MQTT Broker

How It Works

Your backend sends HTTP requests, we deliver MQTT messages

Your Backend
Lambda, Cron Job, API Server
HTTP POST
REST API Bridge
CloudSignal
MQTT Publish
MQTT Subscribers
Devices, Apps, Other Services

Your backend stays stateless β€” no persistent connections, no reconnection logic, no keepalives. Just HTTP requests when you need to publish.

Built for Simplicity

Everything you need to publish MQTT messages via HTTP

Simple HTTP Publishing

Publish MQTT messages with a single POST request. No persistent connections, no MQTT client libraries.

Secure by Default

API key authentication and HTTPS encryption. Scoped permissions per key.

Serverless Native

Stateless API calls work perfectly with AWS Lambda, Vercel, Cloudflare Workers, and cloud functions.

JSON Native

Send structured JSON payloads directly. Automatic serialization, no encoding hassles.

No Connection Overhead

No handshakes, no keepalives, no reconnection logic. Fire and forget.

Scoped API Keys

Create keys with specific topic permissions. Fine-grained access control per integration.

REST API vs Direct MQTT Connection

See why REST API is the cost-effective choice for publish-only backends

Aspect
REST API Bridge
Direct MQTT
Server Requirements
Stateless / Serverless
Always-on server
Connection Management
None needed
Reconnection logic required
Infrastructure Cost
Pay per request
24/7 compute costs
Client Libraries
Standard HTTP (fetch, curl)
MQTT client library
Latency
HTTP overhead (~50-100ms)
Direct (~10-30ms)
Subscribing
Not supported
Full support
Best For
Headless backends, cron jobs
Real-time apps, bidirectional

API Endpoints

Simple, RESTful interface to your MQTT broker

POST
/api/v1/publish
POST
/api/v1/publish/batch
GET
/api/v1/topics/:topic/retained

Quick Examples

Publish a Message

publish.js
// Publish via REST API - no MQTT client needed
const response = await fetch('https://api.cloudsignal.app/v1/publish', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    topic: 'devices/sensor-1/data',
    payload: {
      temperature: 23.5,
      humidity: 65,
      timestamp: Date.now()
    },
    qos: 1
  })
})

const result = await response.json()
// { success: true, messageId: "msg_abc123" }

Batch Publish

batch.js
// Batch publish - multiple messages in one request
const response = await fetch('https://api.cloudsignal.app/v1/publish/batch', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    messages: [
      { topic: 'alerts/system', payload: { type: 'info', msg: 'Backup complete' }},
      { topic: 'metrics/daily', payload: { users: 1250, revenue: 4500 }},
      { topic: 'notifications/user-123', payload: { title: 'Order shipped' }}
    ]
  })
})

// { success: true, published: 3, messageIds: [...] }

Real-World Use Cases

How teams use REST API Bridge to simplify their architecture

Scheduled Notifications

Cron job sends daily digest

A scheduled Lambda function runs at 8am, fetches user data, and publishes personalized notifications to each user's topic. No server running 24/7.

Zero infrastructure cost between runs

Database Triggers

Supabase Edge Function on row insert

When a new order is created in the database, an edge function fires and publishes to the relevant device topics to trigger UI updates.

Event-driven, scales automatically

CI/CD Pipeline Alerts

GitHub Action on deploy

After each deployment, a GitHub Action publishes build status to a team channel topic. Connected dashboards update in real-time.

Simple curl command, no dependencies

Form Submissions

Webhook from Typeform/Tally

When a customer fills out a support form, the webhook triggers a serverless function that publishes to an agent's queue topic.

Connect any HTTP webhook to MQTT

Included in Pro & Scale Plans

REST API Bridge is bundled free with Pro and Scale plans. Free Starter users can add it for $7/month.

Pro Plan
Included
50,000 API calls/month
Overage: $0.50 / 1k calls
  • HTTP POST publish
  • API key auth
  • Batch publish (100 msgs)
  • 30-day logs
Scale Plan
Included
200,000 API calls/month
Overage: $0.25 / 1k calls
  • HTTP POST publish
  • API key auth
  • Batch publish (100 msgs)
  • 30-day logs
  • Priority processing
Free Starter Add-on
$7/month
10,000 API calls/month
Overage: $0.50 / 1k calls
  • HTTP POST publish
  • API key auth
  • JSON payloads
  • 7-day logs

Enterprise plans include unlimited REST API calls at no additional cost.

View full pricing details

Publish Your First Message

Get your API key and start publishing in under 5 minutes. No MQTT knowledge required.