---
title: "Mark or unmark contacts as bounced in this sequence"
method: POST
path: "/v3/sequences/{id}/contacts/set-bounced"
tags: ["Sequence Contacts"]
---

# Mark or unmark contacts as bounced in this sequence

`POST /v3/sequences/{id}/contacts/set-bounced`

<small>_Requires the `sequences:operate` scope (or a broader one that includes it)._</small>

Marks the given contacts as bounced (`isBounced: true`) or clears the bounced flag (`isBounced: false`), scoped to **this sequence only**.

When clearing the flag (`isBounced: false`), `resendEmails` is required: pass `true` to retry the previously bounced step or `false` to leave the schedule untouched. When marking as bounced (`isBounced: true`), `resendEmails` must be omitted.

To apply across every sequence a contact is in, use `POST /v3/contacts/set-bounced` instead.

## Path parameters

- `id` integer, required

## Request body

- object
  - `contactIds` integer[], required — Contact IDs to update. At least one, at most 100. Each ID must be positive.
  - `isBounced` boolean, required — `true` marks the contacts as bounced; `false` clears the bounced flag.
  - `resendEmails` boolean, nullable — Required (non-null) when `isBounced=false`; **must be omitted** when `isBounced=true`. When `true`, the previously bounced step is rescheduled for retry.

## Response `200`

Non-atomic result. The response body is a dictionary keyed by contact id listing per-item failures. Empty object `{}` means all contacts were updated successfully.

Per-item failures use the `SequenceContactError` enum. Common per-item slugs:

| Slug | Meaning |
| --- | --- |
| `invalidInput` | Generic validation failure for this contact |
| `contactNotFound` | Contact does not exist |
| `notInSequence` | Contact is not in this sequence |
| `forbidden` | Caller lacks permission for this contact |

- object — Dictionary of per-item failures keyed by contact id. Empty object `{}` means all succeeded.

## Other responses

- `400` — Validation failure on the route parameter or request body (missing/empty `contactIds`, non-positive ids, more than 100 ids, missing `isBounced`, or `resendEmails` violating the `isBounced` pairing rule), or a business rule rejection.
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks required feature scope to modify this sequence
- `404` — Sequence not found
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
