---
title: "Edit a queued send's copy or time before it goes out"
method: PATCH
path: "/business/scheduled-sends/{sendId}"
tags: ["Scheduled sends"]
---

# Edit a queued send's copy or time before it goes out

`PATCH /business/scheduled-sends/{sendId}`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/scheduled-sends/{sendId}`
- Auth: HTTP basic

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:
- `404` `SCHEDULED_SEND_NOT_FOUND` — No queued send with this id exists, or it belongs to a campaign you do not own.
- `409` `SCHEDULED_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.
- `422` `VALIDATION_FAILED` — Empty body, unknown key, a subject or body over its length cap, or a scheduledAt that is not an ISO 8601 date-time; `param` names the field.
- `429` `RATE_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).
- `500` `UNEXPECTED_ERROR` — An unhandled failure; the detail stays in our logs and is never returned.

Requires one of the following token scopes: campaigns.

## Path parameters

- `sendId` string, required: The queued send's id (the _id of a GET /business/campaigns/{campaignId}/scheduled-sends row, 24-character hex ObjectId).

## Request body

- object
  - `subject` string: Replacement subject (up to 500 characters, may be empty). Omit to keep the queued row's current subject.
  - `body` string: Replacement message body (up to 20000 characters; {Variable} tokens substitute at send time). Omit to keep the queued row's current body.
  - `scheduledAt` string: New ISO 8601 send time (UTC). Omit to keep the queued row's current send time.

## Response `200`

Success

- object
  - `send` object, required
    - `id` string, nullable, required: Id of the NEW queued row that carries the edit; address this one from now on.
    - `replacedSendId` string, required: The row you addressed, now marked overwritten.
    - `status` 'approval_required' | 'scheduled' | 'sent' | 'skipped' | 'stopped' | 'overwritten', required: The queue bucket the edit stays in.
    - `subject` string, required: The subject now on the row (the previous one when you omitted it).
    - `scheduledAt` string, date-time, required: The send time now on the row (the previous one when you omitted it).

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
