Endpoint
Headers
| Header | Required | Description |
|---|---|---|
X-API-Key | Yes | Your API key |
Content-Type | Yes | application/json |
Idempotency-Key | No | Unique string to prevent duplicate processing. Same key within 24 hours returns the cached response. |
Request body
Email addresses of the recipients. Must match users registered in your NextKS organization. Maximum 50 entries.
The message text to send. Maximum 4000 characters. Supports markdown formatting — see Message formatting below.
An optional identifier from your system (e.g., ticket ID, deployment ID). Maximum 200 characters. Returned in status queries and callbacks for correlation. Only meaningful when used with
response_request.Include this field to send an interactive notification with response buttons. See Interactive Notifications for the full specification.
Response
Fire-and-forget (no response_request)
notification_id is a unique identifier for tracking this notification.
Interactive (with response_request)
callback_url, the response also includes a callback_secret for verifying callback signatures — see Callbacks.
request_id can be used to check response status.
Errors
| Status | Details |
|---|---|
400 | Invalid request body (malformed JSON, missing fields, validation errors) |
401 | Invalid API key |
422 | Valid request but business rule violation (e.g., unknown user emails) |
429 | Rate limit exceeded — see Rate Limits |
500 | Delivery failure |
Example
Message formatting
Themessage field supports markdown that renders natively on both Slack and Teams:
| Syntax | Result |
|---|---|
*bold* | bold |
_italic_ | italic |
`code` | code |
```code block``` | Code block |
- item | Bullet list |
[Link text](https://...) | Clickable link |
\n | Line break |
Links are automatically converted to each platform’s native format — standard markdown links work in both Slack and Teams.