Skip to content

Abelo REST API Overview

The Abelo REST API enables programmatic access to your organization's messaging capabilities, customer profiles, and webhook events.

Use the API to send Viber and SMS messages, manage customer profiles and channel consent, trigger API Campaigns, and receive real-time notifications about message delivery and engagement.


1. Base URL

All API endpoints are served securely over HTTPS and use the /v1 version prefix:

https://api.abelo.ai/v1

2. API Capabilities

  • Messages (/messages)
    Trigger configured API Campaigns and send real-time, personalized messages to individual recipients through supported channels such as Viber and SMS. Typical use cases include OTP verification, order confirmations, shipping notifications, and triggered promotional offers.
  • Profiles (/profiles)
    Create, retrieve, update, and manage Profiles, including phone numbers, email addresses, custom attributes, and channel-specific marketing consent.
  • Webhooks (/webhooks)
    Configure webhook subscriptions to receive HTTP callbacks for message lifecycle and engagement events, such as message.sent, message.delivered, message.seen, message.clicked, message.failed, and message.expired.

3. Key Technical Specifications

  • JSON API: Request and response bodies use UTF-8 encoded JSON.
  • Authentication: Authenticate API requests using Bearer credentials (Authorization: Bearer <key_id>:<key_secret>) or cryptographic HMAC-SHA256 request signing. See Authentication.
  • Rate Limiting: API requests are subject to rate limits. Rate-limit information is provided through response headers such as X-RateLimit-Remaining, X-RateLimit-Reset, and Retry-After. See Rate Limits & Errors.
  • Standard HTTP Errors: The API uses standard HTTP status codes, including 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable Entity, 429 Too Many Requests, and 503 Service Unavailable.
  • Interactive API Reference: Explore and test available endpoints directly in your browser using the Interactive API Reference.

4. Quickstart: Send Your First API Campaign Message

Follow this minimal example to trigger an API Campaign in less than 2 minutes:

curl -X POST https://api.abelo.ai/v1/messages/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer abl_key_01J8K92M4:sec_9f8a7b6c5d4e3f2a1b0c" \
  -d '{
    "campaign_id": "cmp_01J8K92M4",
    "recipient": {
      "type": "phone_number",
      "value": "+306912345678"
    },
    "params": {
      "first_name": "Maria",
      "order_number": "ORD-98214"
    },
    "client_reference": "order_ref_1092"
  }'
import httpx

API_URL = "https://api.abelo.ai/v1/messages/send"
AUTH_TOKEN = "abl_key_01J8K92M4:sec_9f8a7b6c5d4e3f2a1b0c"

payload = {
    "campaign_id": "cmp_01J8K92M4",
    "recipient": {
        "type": "phone_number",
        "value": "+306912345678"
    },
    "params": {
        "first_name": "Maria",
        "order_number": "ORD-98214"
    },
    "client_reference": "order_ref_1092"
}

response = httpx.post(
    API_URL,
    headers={
        "Content-Type": "application/json",
        "Authorization": f"Bearer {AUTH_TOKEN}"
    },
    json=payload
)
print(response.status_code, response.json())
const AUTH_TOKEN = "abl_key_01J8K92M4:sec_9f8a7b6c5d4e3f2a1b0c";

const response = await fetch("https://api.abelo.ai/v1/messages/send", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${AUTH_TOKEN}`
  },
  body: JSON.stringify({
    campaign_id: "cmp_01J8K92M4",
    recipient: {
      type: "phone_number",
      value: "+306912345678"
    },
    params: {
      first_name: "Maria",
      order_number: "ORD-98214"
    },
    client_reference: "order_ref_1092"
  })
});

const data = await response.json();
console.log(response.status, data);

5. Next Steps