WhatsAble
API v1Scheduled messages

Read a scheduled message and how it ended

gethttps://api.whatsable.app/v1/scheduled-messages/{id}
Build a request to copy

This page never sends a request. Fill in the fields, then copy the request and run it from your server.

Request
curl -X GET 'https://api.whatsable.app/v1/scheduled-messages/string'

Authorization

bearerAuth
headerAuthorizationBearer <nfy_live_<32 characters>>

An API key from Settings > API keys, sent as Authorization: Bearer <key>.

Path Parameters

id*string

The scheduled message id.

Length1 <= length <= 64

Response Body

The scheduled message.

application/json
  1. response

A message that fires at send_at. Every scheduled message on the key's numbers is listed, whoever created it.

object*string
id*string
Length1 <= length <= 64
status*string

pending until it fires, also while it sends. Then sent, suppressed or failed. cancelled after a cancel. missed: imported too late, so it never fires.

Value in"pending""sent""suppressed""failed""cancelled""missed"
send_at*string

When it fires.

Formatdate-time
time_zone*|

The IANA time zone the creator gave, kept for display. send_at is the instant; it is never read in this zone.

conversation_id*string
Length1 <= length <= 64
contact_id*string
Length1 <= length <= 64
number_id*string

The business number it is sent from.

Length1 <= length <= 64
type*|

The send type. other for a message an older integration scheduled as a WhatsApp object v1 does not send.

text*|

The text of a text message, or the body of a buttons message. Null otherwise: a caption is media.caption.

template*|

The template of a template message. Null otherwise.

media*|

The file of a media message. Null otherwise.

message_id*|

The Message it produced: set once sent, and on a failed message created through this API, whose Message carries the failure. Null otherwise.

suppressed_reason*|

window_closed (the 24-hour window was closed), a failed send check, or a dashboard or integration condition (reply_window, label_condition, reply_gate).

error*|

Why a failed message failed, as on a Message. Null unless status is failed.

created_by*string

api (this API), dashboard (a person in the inbox), keep_alive (office hours' keep-alive), or integration (the legacy-compatible API or a Monday workflow).

Value in"api""dashboard""keep_alive""integration"
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Example Request
curl -X GET 'https://api.whatsable.app/v1/scheduled-messages/string'
Example Response
{  "object": "scheduled_message",  "id": "cm2v8s1a00001qz8h6f7g8h9i",  "status": "pending",  "send_at": "2026-10-22T12:00:00Z",  "time_zone": "America/Argentina/Buenos_Aires",  "conversation_id": "cm2v8c1a00001qz8h4t5u6v7w",  "contact_id": "cm2v8k1a00001qz8h8x9y0z1a",  "number_id": "cm2v8a1b20002qz8h9i0j1k2l",  "type": "template",  "text": null,  "template": {    "id": "cm2v8t1a00001qz8habcd1234",    "name": "order_shipped",    "language": "en_US"  },  "media": null,  "message_id": null,  "suppressed_reason": null,  "error": null,  "created_by": "api",  "created_at": "2026-10-20T19:51:21Z",  "updated_at": "2026-10-20T19:51:21Z"}