API Reference

Integrate Celer Cloud into your application with our RESTful API. Send SMS, check delivery status, and manage your account programmatically.

Base URL

https://api.celerd.com/v1/

Authentication

All requests require API key authentication via the X-API-Key header.

curl -X POST https://api.celerd.com/v1/messages \ -H "X-API-Key: sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{"to":"+1234567890","from":"CelerCloud","content":"Hello"}'

Quick Start

1

Get API Keys

Sign up and find your keys in Dashboard → Settings

2

Make a Request

Use the endpoint with your API key header

3

Handle Response

Parse JSON response and handle status codes

POST /messages

Send SMS

Create and send a new message to any destination worldwide.

Request Body

FieldTypeRequiredDescription
tostringRequiredRecipient phone number (E.164 format, e.g. +1234567890)
fromstringRequiredSender ID (alphanumeric or numeric, 1-11 characters)
contentstringRequiredMessage body (max 160 GSM-7 / 70 Unicode chars)

Example Request

curl -X POST https://api.celerd.com/v1/messages \ -H "X-API-Key: sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "to": "+1234567890", "from": "CelerCloud", "content": "Your verification code is: 847291" }'

Response (201 Created)

{ "id": "msg_abc123", "to": "+1234567890", "from": "CelerCloud", "content": "Your verification code is: 847291", "status": "queued", "segments": 1, "cost": 0.015, "currency": "USD", "created_at": "2026-05-20T06:12:00Z" }

Code Examples

Python
# pip install requests

import requests

response = requests.post(
    "https://api.celerd.com/v1/messages",
    headers={
        "X-API-Key": "YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "to": "+1234567890",
        "from": "CelerCloud",
        "content": "Your verification code is: 847291"
    }
)

data = response.json()
print(data["id"])      # msg_abc123
print(data["status"])  # queued
GET /messages

List Messages

Paginated list of sent messages with filtering options.

Query Parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page (default: 50, max: 200)
statusstringFilter: queued / delivered / failed / pending
date_fromstringStart date (ISO 8601)
date_tostringEnd date (ISO 8601)

Code Examples

Python
import requests

response = requests.get(
    "https://api.celerd.com/v1/messages",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"page": 1, "limit": 30, "status": "delivered"}
)

data = response.json()
print(len(data["items"]))  # 30
GET /account/balance

Get Balance

Check current account balance and usage statistics.

Response (200 OK)

{ "status": "ok", "balance": 250.75, "currency": "USD", "credit_limit": 1000.00 }

Code Examples

Python
import requests

response = requests.get(
    "https://api.celerd.com/v1/account/balance",
    headers={"X-API-Key": "YOUR_API_KEY"}
)

data = response.json()
print(data["balance"])  # 250.75
POST /account/keys

Manage API Keys

Create, list, or revoke API keys for your account.

POST /webhooks

Configure Webhooks

Set up webhook endpoints to receive delivery status callbacks.

Push Payload (data structure sent to your endpoint)

{ "event": "message.delivered", "data": { "message_id": "msg_abc123", "to": "+1234567890", "from": "CelerCloud", "status": "delivered", "cost": 0.015, "currency": "USD", "delivered_at": "2026-05-20T06:12:08Z" } }

Error Codes

API Errors

101AccessKey error.
102AccessKey is disabled.
104The scheduled time cannot be less than 10 minutes or more than 15 days.
107No balance.
108Incorrect phone number.
113Incorrect date.
115AccessKey error.
122AccessKey error.
123The length of content is too long.
136The account has been frozen or deactivated and cannot be operated. If you have any questions, please contact the administrator.
137IP access limited.
139This account has not been verified yet, please complete the verification first.
144Incorrect price.
145Blacklist failed.
146SenderID error.
147Content error.
500SERVER ERROR

SMPP Protocol Errors

0STATUS_OKSuccessNormal request processing.
1STATUS_INVMSGLENInvalid message length.Long SMS segment count exceeds limit.
8STATUS_SYSERRSystem error.Application/client status error or internal server error.
10STATUS_INVSRCADRInvalid source address.Source address format or content is invalid.
11STATUS_INVDSTADRInvalid destination address.Phone number is empty, invalid format, or exceeds 20 digits.
13STATUS_BINDFAILBind failed.system_id / password authentication failed.
88STATUS_THROTTLEDThrottled.Request rate limit exceeded.

SMPP Delivery Receipt (DLR) Errors

001REJECTDInsufficient balance.
002REJECTDInvalid phone number.
003REJECTDCountry not quoted.
004REJECTDBlacklisted.
005REJECTDNot in sender whitelist.
006REJECTDContent does not meet whitelist requirements.
007REJECTDRoute and template did not match any channel.
008REJECTDChannel template management — rejected.
009REJECTDPlatform risk interception.
010REJECTDCustomer number segment blocked.
011REJECTDChannel number segment blocked.