Skip to content

Bulk Update Threads

Set read, starred or category on up to 100 threads in one call.

POST/api/v1/inbox/threads/bulk-update

Requires an API key with the write scope.

Ids that are not in this workspace are skipped and not counted. Fields you leave out, or send as null, are not changed. Setting category to unsubscribe unsubscribes each affected lead and cancels their queued sends in every campaign; that cannot be undone. A category change writes an audit entry per thread and fires the reply.categorized webhook event.

Body Parameters#

idsstring[]bodyrequired

Thread identifiers, 1 to 100.

isReadbooleanbody

Mark read or unread.

isStarredbooleanbody

Star or unstar.

categorystringbody

New category. One of: interested, not_interested, out_of_office, bounce, unsubscribe, uncategorized, unknown, unrelated.

Response#

Returns { "data": { "updated": 2 } }, the number of threads found in this workspace.

Errors#

StatusDescription
401Missing, invalid, revoked or expired API key
403API key does not have the required scope: write
422ids is empty or has more than 100 items, no field to change, or an unknown category

Rate Limit#

  • 100 requests per minute, shared by every bulk call in your workspace. Fixed 60-second window.
  • Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix epoch seconds) and X-RateLimit-Bucket (bulk).
  • A 429 response includes a Retry-After header (seconds until the bucket resets).

For client-side patterns, see Rate Limiting.

Was this page helpful?
View as MarkdownLast updated November 4, 2026