Skip to content

/notify

The /notify endpoint is the primary way to send notifications through Smooven. It supports both direct channel delivery and intent-based routing.

POST https://api.smooven.io/v1/agent/notify

HeaderValue
AuthorizationBearer YOUR_SECRET_KEY
Content-Typeapplication/json
{
"channel": "sms",
"to": "+61400000000",
"message": "Your verification code is 482910",
"sender_id": "MySender",
"callback_url": "https://your-server.com/webhooks"
}
{
"intent": "Remind Sarah about her appointment tomorrow at 2pm",
"urgency": "normal",
"context": {
"user_id": "sarah@example.com",
"appointment_id": "apt_123"
},
"callback_url": "https://your-server.com/webhooks"
}
ParameterTypeRequiredDescription
channelstringConditionalChannel to use: sms, rcs, push, email, inapp. Required if intent is not set.
tostringConditionalRecipient identifier (phone number, email, or player ID). Required if intent is not set.
messagestringConditionalMessage content. Required for SMS.
intentstringConditionalNatural language intent description. Required if channel is not set.
urgencystringNolow, normal, high, critical. Default: normal
contextobjectConditionalStructured data for intent processing. Must include user_id for intent-based mode.
preferred_channelstringNoHint for intent-based mode. Smooven may override.
callback_urlstringNoWebhook URL for delivery status updates
sender_idstringNoCustom sender identifier (SMS, email)
rcsobjectNoRCS-specific options (cards, buttons)
pushobjectNoPush-specific options (title, body, deep link)
emailobjectNoEmail-specific options (from, subject, html, template)
inappobjectNoIn-app specific options (type, title, body, action)
{
"success": true,
"notification_id": "ntf_abc123def456",
"channel_used": "sms",
"status": "queued",
"timestamp": "2026-03-05T08:00:00Z"
}
{
"success": false,
"error": {
"code": "invalid_recipient",
"message": "The phone number +614000 is not in valid E.164 format"
}
}
CodeHTTP StatusDescription
invalid_recipient400Recipient identifier is invalid or missing
invalid_channel400Requested channel is not supported
missing_content400No message content or intent provided
unauthorized401Invalid or missing API key
rate_limited429Too many requests. Check Retry-After header.
quota_exceeded429Monthly message limit reached for your plan
internal_error500Unexpected server error. Contact support.
PlanRequests per second
Developer10
Growth50
Business200
EnterpriseCustom