Skip to main content
POST
/
messages
Send single message
curl --request POST \
  --url https://api-message.nativehub.live/api/v1/messages \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "to": "+8801712345678",
  "from": "+8801912345678",
  "body": "Your OTP is 123456. Valid for 5 minutes.",
  "provider": "provider-uuid"
}
'
{
  "id": "d4e5f6a7-b8c9-0123-def4-567890123456",
  "tenant_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "account_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "batch_id": "e5f6a7b8-c9d0-1234-ef56-789012345678",
  "from": "+8801912345678",
  "to": "+8801712345678",
  "body": "Your OTP is 123456. Valid for 5 minutes.",
  "status": "delivered",
  "part_count": 1,
  "sell_price": 0.05,
  "cost_price": 0.03,
  "connection_id": "f6a7b8c9-d0e1-2345-fa67-890123456789",
  "provider_message_id": "sm_abc123xyz",
  "priority": "normal",
  "is_encrypted": false,
  "sent_at": "2026-02-14T10:15:30Z",
  "delivered_at": "2026-02-14T10:15:32Z",
  "created_at": "2026-02-14T10:15:28Z",
  "updated_at": "2026-02-14T10:15:32Z"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
to
string
required

Recipient phone number in E.164 format

from
string
required

Sender ID or phone number

body
string
required

Message content

provider
string

Specific provider to use (optional)

Response

Message sent successfully

id
string<uuid>
tenant_id
string<uuid>
account_id
string<uuid>
user_id
string<uuid>
batch_id
string<uuid>
from
string
to
string
body
string
status
enum<string>
Available options:
pending,
queued,
submitted,
delivered,
failed,
rejected,
expired
part_count
integer
sell_price
number
cost_price
number
connection_id
string<uuid>
provider_message_id
string
priority
string
is_encrypted
boolean
error_code
string
error_message
string
sent_at
string<date-time>
delivered_at
string<date-time>
created_at
string<date-time>
updated_at
string<date-time>