App Logo
mail.google.com

Toggle Gmail thread read state

Mark a Gmail thread as read or unread by its hex threadId. Pass read:true to mark as read (default), read:false to mark as unread. Returns the final read state, threadId, the All Mail page it was found on, and already_read/already_unread flags. Acts from the All Mail list, scanning the first 4 pages (~200 newest threads). A thread already in the requested state is left alone and comes back with already_read:true or already_unread:true, so repeating the call is safe. Waits for Gmail to persist the change rather than returning on optimistic row restyling.

Input

threadId required

Hex legacy thread id (as returned by search_emails).

read optional

true to mark as read (default), false to mark as unread.

Default: true
account optional

Google account email to act as (authuser=). Without it Gmail picks u/0, nondeterministic in a multi-account browser jar.

Output

page required

Which All Mail page the thread was found on (1-based).

threadId required
read optional

The final read state: true if thread is now read.

unread optional

The final unread state: true if thread is now unread.

already_read optional

true = the thread was already read; nothing was clicked.

already_unread optional

true = the thread was already unread; nothing was clicked.

FAQ

Mark a Gmail thread as read or unread by its hex threadId. Pass read:true to mark as read (default), read:false to mark as unread. Returns the final read state, threadId, the All Mail page it was found on, and already_read/already_unread flags. Acts from the All Mail list, scanning the first 4 pages (~200 newest threads). A thread already in the requested state is left alone and comes back with already_read:true or already_unread:true, so repeating the call is safe. Waits for Gmail to persist the change rather than returning on optimistic row restyling.
Required: threadId. Optional: read, account.
It returns page, read, unread, threadId, already_read, already_unread.
Yes. It acts as you on mail.google.com: on your own Chrome it reuses your session, and on a Reduck-hosted browser it loads the mail.google.com cookies saved by the Reduck extension.
It makes changes on mail.google.com, like sending, posting or booking something.
Ask an AI agent connected to Reduck to run reduck/mail.google.com/toggle_read_state, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/mail.google.com/toggle_read_state
It is part of Reduck's official curated catalogue.

Start building not clicking