Skip to content
SENDLY by ACTIOSENDLY by ACTIO
Documentation

An API you understand without reading a PDF.

Everything you need to send your first SMS in 5 minutes. Endpoint, request fields, error codes and webhooks – with 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

Generate the token in the client panel (or via customer support). Keep it in a safe place.

3. Send the first SMS

POST /api/sms with JSON payload. Code samples below.

Endpoint: POST /api/sms

Main sending endpoint. Bearer token auth, JSON body (application/json). Returns the message identifier (message_id, 16 hex characters).

Base URL

https://api.sendly.link

Request fields

  • tostring (9–11 digits)required

    Recipient number – numeric string, 9–11 characters (e.g. 48732129001).

  • bodystringrequired

    Message content, min. 1 character. UCS-2 encoding split every 60 characters; optionally GSM-7 (single message, max 160 characters) – enabled in the panel.

  • fromstring (9–11 digits)

    Optional. The virtual mobile number in SENDLY (numeric string, 9–11 characters).

curl -X POST https://api.sendly.link/api/sms \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "48732129000",
    "body": "Twój kod logowania: 482910"
  }'

Response (200)

{ "message_id": "a906cff7719bd889" }

Bulk send: POST /api/sms-multi

The same message to multiple numbers (1 to 100). Enabled only via customer support. All-or-nothing validation – every number must be a valid Polish mobile number and the numbers must be unique; otherwise the whole request is rejected. The response contains a message_ids array with number + message_id pairs.

Base URL

https://api.sendly.link

Request fields

  • tostring[] (9–11 digits, 1–100)required

    Array of recipient numbers – each a numeric string of 9–11 characters, 1 to 100 elements, numbers must be unique.

  • bodystringrequired

    Message content, min. 1 character.

  • fromstring (9–11 digits)

    Optional. The virtual mobile number in SENDLY (numeric string, 9–11 characters).

curl -X POST https://api.sendly.link/api/sms-multi \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["48732129001", "48732129002"],
    "body": "Test SENDLY"
  }'

Response (200)

{
  "message_ids": [
    { "number": "48732129001", "message_id": "a906cff7719bd889" }
  ]
}

Error codes

403
Authorization Error
Missing or invalid Bearer Token (details in errors.token).
422
Validation Error
Invalid data – details in errors.to / errors.body (and errors.from if provided). Each field is an array of messages.
429
Too Many Requests
Too many requests in a short time – wait and retry.

Webhooks

You configure the webhook URL in the client panel. We send a POST (application/json) – one attempt, no redirect following, no authentication, from the current IP address of api.sendly.link.

type: MESSAGEInbound message – fields: from (number or sender ID), to, body.
type: NOTIFICATIONStatus confirmation – status field: DELIVERED or ERROR.
{
  "type": "NOTIFICATION",
  "message_id": "a906cff7719bd889",
  "status": "DELIVERED"
}

3CX SMS API

An alternative mode for sending and receiving SMS, compatible with the current 3CX Phone System specification. To enable it, select both options in the client panel: SMS API and 3CX SMS API. It can also be enabled by customer support.

Outbound

In the SMS section in 3CX, provide the token generated in the client panel and the URL: https://api.sendly.link/api/tcx

Inbound

In the client panel, provide the webhook available in your 3CX system (when enabled via customer support, you provide the webhook and receive a token in return).

Start sending SMS today.

100 free messages. No credit card. No subscription. Activation in 30 seconds.