Skip to main content
POST
/
bulk
Send bulk SMS
curl --request POST \
  --url https://api.hixbe.com/sms/bulk \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Hixbe-Version: <hixbe-version>' \
  --data '
{
  "recipients": [
    "8801712345678",
    "8801987654321",
    "8801555555555"
  ],
  "message": "Flash Sale! 50% off everything today only. Shop now at hixbe.com",
  "from": "HIXBE",
  "route": "promotional"
}
'
{
  "id": "job_bulk_001",
  "status": "processing",
  "total": 3,
  "queued": 3,
  "sent": 0,
  "delivered": 0,
  "failed": 0,
  "estimated_cost": 1.5,
  "created_at": "2026-01-15T10:00:00Z",
  "completed_at": null
}

Authorizations

Authorization
string
header
required

Use your API key as a Bearer token. Format: Authorization: Bearer sk_live_xxxxx

Headers

Hixbe-Version
string
default:2026-01-01
required

API version in YYYY-MM-DD format. Using the latest version ensures access to newest features.

Pattern: ^\d{4}-\d{2}-\d{2}$

Body

application/json
recipients
string[]
required

List of recipient phone numbers (max 10,000)

Required array length: 1 - 10000 elements
Example:
["8801712345678", "8801987654321"]
message
string
required

Message content (same for all recipients)

Required string length: 1 - 1000
Example:

"Flash Sale! 50% off everything today only. Shop now!"

from
string

Sender ID (must be approved)

Maximum string length: 11
Example:

"HIXBE"

route
enum<string>
default:promotional

Message route (OTP not available for bulk)

Available options:
transactional,
promotional
Example:

"promotional"

schedule_at
string<date-time> | null

Schedule bulk send for future time

Example:

"2026-01-16T09:00:00Z"

Response

Bulk job accepted and processing

Bulk messaging job status and statistics

id
string
required

Unique job identifier

Example:

"job_bulk_001"

status
enum<string>
required

Job processing status

Available options:
processing,
completed,
failed,
cancelled
Example:

"processing"

total
integer
required

Total number of recipients

Required range: x >= 1
Example:

5000

queued
integer
required

Messages queued for delivery

Example:

4850

sent
integer

Messages sent to carrier

Example:

150

delivered
integer

Successfully delivered messages

Example:

120

failed
integer

Failed deliveries

Example:

5

estimated_cost
number

Estimated total cost

Example:

250

created_at
string<date-time>

Job creation timestamp

Example:

"2026-01-15T10:00:00Z"

completed_at
string<date-time> | null

Job completion timestamp

Example:

null