An API you understand without reading a PDF.
Everything you need to send your first SMS in 5 minutes. Full reference, ready libraries, examples in 5 languages.
Quickstart
1. Create an account
Sign up via email. 100 SMS free on start, no credit card required.
2. Generate Bearer Token
Panel → Settings → API → Generate. Save the token in a safe place.
3. Send the first SMS
POST /api/sms with JSON payload. Code samples below.
Endpoint: POST /api/sms
Main send endpoint. Accepts JSON, returns message ID and status. Idempotency Key optional.
Base URL
https://msg-api.actio.plPola request
fromstringrequiredSender ID (alphanumeric up to 11 chars or E.164 number).
tostringrequiredRecipient number in E.164 without '+' (e.g. 48732129000).
bodystringrequiredSMS body. UTF-8. Up to 1530 chars (10 segments).
scheduled_atISO 8601Scheduled send time.
idempotency_keystringUUID v4. Guarantees the same request sends only once.
curl -X POST https://msg-api.actio.pl/api/sms \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "FirmaXYZ",
"to": "48732129000",
"body": "Twój kod logowania: 482910"
}'Error codes
401402422429500Webhooks
Configure URL in panel. We POST JSON to your endpoint on every SMS status change.
sms.deliveredSMS delivered to recipient.sms.failedDelivery failed – with reason.sms.expiredSMS not delivered within 48h.sms.bouncedNumber inactive or unreachable.{
"event": "sms.delivered",
"message_id": "msg_01HQX7Z8RNQK5ZF8TBPNT2YFKA",
"to": "48732129000",
"delivered_at": "2026-05-15T14:23:47.291Z",
"operator": "Orange Polska",
"segments": 1
}Start sending SMS today.
100 free messages. No credit card. No subscription. Activation in 30 seconds.