Skip to main content
Developer Platform

Ship messaging in minutes, not weeks.

One REST API for programmable SMS, the Msgly Android Gateway and realtime webhooks. Clear docs, official SDKs and predictable pricing.

Send your first SMS
curl https://api.msgly.live/v1/messages \
-H "Authorization: Bearer $MSGLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+48512345678",
"from": "Msgly",
"text": "Your Msgly code is 4921"
}'
Quick Start

From zero to first message

Four steps to a working integration.

  1. 1
    Create an API key

    Sign in to the Msgly dashboard and generate a secret API key.

  2. 2
    Install an SDK

    Add the official Msgly SDK for your language, or call the REST API directly.

  3. 3
    Send your first message

    Make a single POST request to /v1/messages and watch it arrive.

  4. 4
    Receive webhooks

    Point a public endpoint at Msgly to handle inbound SMS and delivery events.

Install the SDK
npm install @msgly/sdk
Read the full guide
Show me the code

Send a message. Receive a webhook.

Pick your language once β€” every sample stays in sync.

Send an SMS

curl https://api.msgly.live/v1/messages \
-H "Authorization: Bearer $MSGLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+48512345678",
"from": "Msgly",
"text": "Your Msgly code is 4921"
}'

Receive a webhook

import express from 'express';
import { Msgly } from '@msgly/sdk';

const app = express();
const msgly = new Msgly({ apiKey: process.env.MSGLY_API_KEY });

app.post('/webhooks/msgly', express.raw({ type: '*/*' }), (req, res) => {
const event = msgly.webhooks.verify(
req.body,
req.header('X-Msgly-Signature'),
process.env.MSGLY_WEBHOOK_SECRET,
);

if (event.type === 'message.received') {
console.log('Inbound SMS from', event.data.from, ':', event.data.text);
}

res.sendStatus(200);
});

app.listen(3000);
Status

Platform status

Live availability of Msgly services.