Skip to main content

Quick Start

Send your first message in 3 minutes. Choose your channel and follow the example for your preferred language.

Prerequisites

  • Active Qlara account
  • API key (find it in your account dashboard)

Send SMS

Endpoint: POST https://lora-api.agiletelecom.com/api/message-server/sms/send

SMS is universal reach. No templates or approvals needed.

curl -X POST https://lora-api.agiletelecom.com/api/message-server/sms/send \
-H "Content-Type: application/json" \
-H "X-Api-Key: your_api_key_here" \
-d '{
"phoneNumber": "+393901234567",
"message": "Hello! This is your first SMS via Qlara.",
"senderName": "Qlara"
}'

Send RCS

Endpoint: POST https://lora-api.agiletelecom.com/api/message-server/rcs/send

RCS delivers rich media on Android. Requires an approved template.

curl -X POST https://lora-api.agiletelecom.com/api/message-server/rcs/send \
-H "Content-Type: application/json" \
-H "X-Api-Key: your_api_key_here" \
-d '{
"phoneNumber": "+393901234567",
"templateId": "template_123",
"variables": {
"name": "John"
}
}'

Send WhatsApp

Endpoint: POST https://lora-api.agiletelecom.com/api/message-server/whatsapp/send

WhatsApp messages must use Meta-approved templates. Free-form messages are allowed within 24 hours of customer interaction.

curl -X POST https://lora-api.agiletelecom.com/api/message-server/whatsapp/send \
-H "Content-Type: application/json" \
-H "X-Api-Key: your_api_key_here" \
-d '{
"phoneNumber": "+393901234567",
"templateId": "template_456",
"variables": {
"name": "John",
"code": "ABC123"
}
}'

Response Format

All channels return the same response structure:

{
"messageId": "msg_1234567890",
"customerMessageId": "your_reference_id",
"simulation": false,
"results": [
{
"phoneNumber": "+393901234567",
"accepted": true,
"channel": "sms",
"statusCode": 200
}
]
}

Key Fields:

  • messageId: Unique identifier for this message (use for tracking)
  • customerMessageId: Your reference ID (if provided in the request)
  • accepted: true means the message was accepted for sending, not delivered. Delivery happens asynchronously.
  • channel: The channel used for delivery
  • statusCode: HTTP status of the request (200 = success)

Important: Accepted ≠ Delivered

When accepted: true, the message entered the sending queue. It has not been delivered yet. Use webhooks or polling to monitor actual delivery status.

Next Steps

  1. Configure Webhooks — Receive real-time delivery notifications
  2. Set Up Templates — Pre-approve messages for RCS and WhatsApp
  3. Implement Fallback — Let the API automatically try alternate channels
  4. Authentication — Secure your API key properly

Need detailed reference docs? See the API Reference for all parameters and error codes.