curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"body": "<string>",
"scheduledAt": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId}"
payload = {
"subject": "<string>",
"body": "<string>",
"scheduledAt": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({subject: '<string>', body: JSON.stringify('<string>'), scheduledAt: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"send": {
"id": "6a8dce64a4566f4f2454bd38",
"replacedSendId": "6a8da7adafc401ca94530e14",
"status": "scheduled",
"subject": "Quick question about BrightPay (edited)",
"scheduledAt": "2026-08-26T00:00:00.000Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Edit a queued send's copy or time before it goes out
Edits a queued send before it goes out. Send any of subject, body and scheduledAt; omitted fields keep the queued row’s current values. IMPORTANT: the edit is not an in-place update - the row you addressed is marked overwritten and a NEW queued row carries the content forward, so the response returns the new id (and the old one as replacedSendId) and any further edit must address the new id. Only a send still waiting to go out can be edited: a row in scheduled or approval_required, with a send time. Anything else - sent, skipped, stopped, already overwritten, replied or failed - answers 409. Only the owner of the send’s campaign may edit it. Rate limit: 30 requests/minute and 1,000/day per token owner, shared by every campaign, scheduled-send, campaign-template and knowledge-hub endpoint.
Errors:
404SCHEDULED_SEND_NOT_FOUND— No queued send with this id exists, or it belongs to a campaign you do not own.409SCHEDULED_SEND_NOT_EDITABLE— The send is no longer waiting to go out (sent, skipped, stopped, already overwritten, replied or failed), or it carries no send time.422VALIDATION_FAILED— Empty body, unknown key, a subject or body over its length cap, or a scheduledAt that is not an ISO 8601 date-time;paramnames the field.429RATE_LIMITED— More than 30 campaign requests in a minute, or 1,000 in a day, for this token owner (the bucket is shared by every /business/campaigns, /business/scheduled-sends, /business/campaign-templates and /business/knowledge-hubs call).500UNEXPECTED_ERROR— An unhandled failure; the detail stays in our logs and is never returned.
Requires one of the following token scopes: campaigns.
curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "<string>",
"body": "<string>",
"scheduledAt": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId}"
payload = {
"subject": "<string>",
"body": "<string>",
"scheduledAt": "<string>"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({subject: '<string>', body: JSON.stringify('<string>'), scheduledAt: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"send": {
"id": "6a8dce64a4566f4f2454bd38",
"replacedSendId": "6a8da7adafc401ca94530e14",
"status": "scheduled",
"subject": "Quick question about BrightPay (edited)",
"scheduledAt": "2026-08-26T00:00:00.000Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Path Parameters
The queued send's id (the _id of a GET /business/campaigns/{campaignId}/scheduled-sends row, 24-character hex ObjectId).
Body
Replacement subject (up to 500 characters, may be empty). Omit to keep the queued row's current subject.
500Replacement message body (up to 20000 characters; {Variable} tokens substitute at send time). Omit to keep the queued row's current body.
20000New ISO 8601 send time (UTC). Omit to keep the queued row's current send time.
Response
Success
Show child attributes
Show child attributes