Kenso

Scheduled messages

Cancel a scheduled message before it starts sending.

Inbox1 endpointKen-Version: 2026-11-02AuthenticationWorkspacesErrors

Cancel a scheduled message that has not started sending

POST/v1/scheduled-messages/{scheduledMessageId}/cancelscheduled-messages.cancel

Try it on developer.ken.so

Requires InboxReplyAccess. A missing id is not_found. A row that is already sending, sent, cancelled, or failed is invalid_state. Cancel still returns the scheduled message when restoring the composer draft fails, with draft.saved false so the caller saves the draft again.

Parameters

Name
In
Type
Required
Description
scheduledMessageId
In: path
string
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a ScheduledMessageModel.

Field
Type
Description
id
integer (int64)
messageId
string
kind
string
status
string
scheduled, sending, sent, cancelled, failed, or awaiting_approval.
approverMemberId
integer (int64)
With status awaiting_approval: the client seat whose own inbox sends the reply and who must approve it . Names come from /v1/members.
delaySeconds
integer (int32)
sendAt
string (date-time)
createdAt
string (date-time)
body
string
senderEmailId
integer (int32)
to
array of ThreadRecipientModel
cc
array of ThreadRecipientModel
bcc
array of ThreadRecipientModel
draft
ScheduledMessageDraftModel
Request
curl -X POST "https://api.ken.so/v1/scheduled-messages/string/cancel" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": {
    "id": 812,
    "messageId": "msg_ZW1haWw6NDAyMjg0LjJAZXhhbXBsZS5jb20",
    "kind": "string",
    "status": "string",
    "approverMemberId": 812,
    "delaySeconds": 1,
    "sendAt": "2026-09-23T15:02:11Z",
    "createdAt": "2026-09-23T15:02:11Z",
    "body": "string",
    "senderEmailId": 812,
    "to": [
      {
        "name": "string",
        "address": "string"
      }
    ],
    "cc": [
      {
        "name": "string",
        "address": "string"
      }
    ],
    "bcc": [
      {
        "name": "string",
        "address": "string"
      }
    ],
    "draft": {
      "messageId": "msg_ZW1haWw6NDAyMjg0LjJAZXhhbXBsZS5jb20",
      "kind": "string",
      "body": "string",
      "senderEmailId": 812,
      "to": [
        {
          "name": "string",
          "address": "string"
        }
      ],
      "cc": [
        {
          "name": "string",
          "address": "string"
        }
      ],
      "bcc": [
        {
          "name": "string",
          "address": "string"
        }
      ],
      "saved": true
    }
  }
}