Beta. This endpoint is in beta. Behavior, parameters, and response shapes may change without notice.
Marks the given contacts as bounced (isBounced: true) or clears the bounced flag (isBounced: false) across every sequence they are currently enrolled in.
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 restrict the change to a single sequence, use POST /v3/sequences/{id}/contacts/set-bounced instead.
Documentation Index
Fetch the complete documentation index at: https://docs.reply.io/llms.txt
Use this file to discover all available pages before exploring further.
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>Get your API key from the Reply dashboard: Settings → API Key.
Contact IDs to update. At least one, at most 100. Each ID must be positive.
1 - 100 elementstrue marks the contacts as bounced; false clears the bounced flag.
Required (non-null) when isBounced=false; must be omitted when isBounced=true.
When true, the previously bounced step is rescheduled for retry.
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 error codes mirror the controller's ContactError:
| Code | Meaning |
|---|---|
| 1 | NotFound — contact does not exist |
| 3 | Forbidden — caller lacks permission for this contact |
| 5 | SequenceNotFound — derived sequence not accessible |
| 8 | InvalidInput — value rejected for this contact |
Dictionary of per-item failures keyed by contact id. Empty object {} means all succeeded.
Per-item error for non-atomic bulk operations. Only failed items are returned in the response dictionary. Items not present in the dictionary succeeded.