Creates a message with a scheduled delivery time.
/api/conversations/{id}/messages/scheduleCreates a message with a scheduled delivery time. The message remains pending until the scheduled time arrives, then becomes visible through the normal conversation message stream. The scheduled time must be in the future. Repeating the request creates another scheduled message.
Bearer API key or X-API-Key header.conversations:writeautomation_api)Path parameter. Unique identifier of this resource.
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Request body accepted by this operation.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"success": true,
"id": "55555555-5555-4555-8555-555555555555"
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}curl --request POST \
'https://api.convor.io/api/conversations/11111111-1111-4111-8111-111111111111/messages/schedule' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...' \
--header 'Content-Type: application/json' \
--data '{
"content": "I will follow up tomorrow morning.",
"senderType": "operator",
"type": "text",
"scheduledAt": "2026-08-04T08:30:00.000Z"
}'const response = await fetch("https://api.convor.io/api/conversations/11111111-1111-4111-8111-111111111111/messages/schedule", {
method: "POST",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_...",
"Content-Type": "application/json"
},
body: JSON.stringify({
"content": "I will follow up tomorrow morning.",
"senderType": "operator",
"type": "text",
"scheduledAt": "2026-08-04T08:30:00.000Z"
}),
});
const contentType = response.headers.get("content-type") ?? "";
const data = response.status === 204
? null
: contentType.includes("json")
? await response.json()
: contentType.startsWith("text/")
? await response.text()
: await response.blob();
if (!response.ok) {
const message = typeof data === "object" && data !== null
&& "error" in data && typeof data.error === "object"
&& data.error !== null && "message" in data.error
? String(data.error.message)
: "Convor API request failed (" + response.status + ")";
throw new Error(message);
}
console.log(data);Was this page helpful?
Text content.
Sender type. Allowed values: operator.
Type. Allowed values: text, internal_note.
Time when the message should be published. ISO 8601 timestamp in UTC.