Update a scheduled send
Using the Cancel Scheduled Sends API, you can cancel or pause sending one or more groups of emails. SendGrid defines these multiple scheduled send requests together as batches identified with a batch_id
.
With this API, you can perform the following tasks on scheduled emails:
- Define and validate the ID for a batch of messages.
- Retrieve, update, pause, resume, or cancel a scheduled send.
Cancelling or pausing a batch of messages include the following conditions:
- You can't pause or cancel more than 10 different batches at one time.
- You can't pause or cancel a batch later than 10 minutes before the scheduled
send_at
time. - When you cancel or pause a batch, all messages associated with that batch stay in your sending queue.
- When a cancelled batch reaches its
send_at
time, SendGrid discards the messages. - When a paused batch reaches its
send_at
time, SendGrid retains the messages. When you resume a paused batch, SendGrid delivers your scheduled send. - When a paused batch passes 72 hours after its
send_at
time, SendGrid discards the messages as Expired.
To cancel a scheduled send of a single message, consult Canceling a Scheduled Send.
PATCH/v3/user/scheduled_sends/{batch_id}
Base url: https://api.sendgrid.com (for global users and subusers)
Base url: https://api.eu.sendgrid.com (for EU regional subusers)
This endpoint allows you to update the status of a scheduled send for the given batch_id
.
If you have already set a cancel
or pause
status on a scheduled send using the "Cancel or pause a scheduled send" endpoint, you can update it's status using this endpoint. Attempting to update a status once it has been set with the "Cancel or pause a scheduled send" endpoint will result in a 400
error.
Bearer <<YOUR_API_KEY_HERE>>
Optional
The on-behalf-of
header allows you to make API calls from a parent account on behalf of the parent's Subusers or customer accounts. You will use the parent account's API key when using this header. When making a call on behalf of a customer account, the property value should be "account-id" followed by the customer account's ID (e.g., on-behalf-of: account-id <account-id>
). When making a call on behalf of a Subuser, the property value should be the Subuser's username (e.g., on-behalf-of: <subuser-username>
). See On Behalf Of for more information.
application/json
The status you would like the scheduled send to have.
cancel
pause
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const batch_id = "batch_id";5const data = {6status: "pause",7};89const request = {10url: `/v3/user/scheduled_sends/${batch_id}`,11method: "PATCH",12body: data,13};1415client16.request(request)17.then(([response, body]) => {18console.log(response.statusCode);19console.log(response.body);20})21.catch((error) => {22console.error(error);23});