Team inbox
Every operation in this group: what it accepts, what it returns and the errors it can answer with.
Operations
Work a shared address as a team: give a thread to one person, mark it done, and talk about it in comments the sender never sees. Done archives the thread for everyone, and a new reply brings it back to the inbox. Only people who can see a thread can be given it or mentioned on it: the workspace owner, members who reach every address, and members who hold its address or its domain.
GET/threads/{id}/team
Read who has a thread
Who the thread is assigned to and who marked it done, how many comments it has, who else is writing a reply right now, and everyone who can see it, the people it can be given to or who can be mentioned on it.
Requires the threads:read scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Returns
The thread as the team sees it.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
PUT/threads/{id}/assignee
Assign a thread
Gives the thread to one person, who is emailed unless they assigned it to themselves. assigneeId has to be somebody who can see the thread, or the call is a 422 invalid_parameter on assigneeId. null leaves it with nobody.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Request body
assigneeIdstringRequiredThe person to assign the thread to, or null to leave it with nobody.
Can be null1 to 128 characters
Returns
Who has the thread now.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
- TypeScript
threads.assign()- Python
threads.assign()- Ruby
threads.assign- PHP
threads->assign- Go
Threads.Assign- Java
threads().assign- C#
Threads.AssignAsync- CLI
openemail threads assign- MCP
assignThread
DELETE/threads/{id}/assignee
Unassign a thread
Leaves the thread with nobody.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Returns
The thread, assigned to nobody.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
POST/threads/{id}/done
Mark a thread done
Archives the thread for everyone and records who marked it done. A new reply brings it back to the inbox.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Returns
The thread, with who marked it done.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
POST/threads/{id}/reopen
Reopen a thread
Moves a done thread back to the inbox for everyone.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Returns
The thread, open again.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
- TypeScript
threads.reopen()- Python
threads.reopen()- Ruby
threads.reopen- PHP
threads->reopen- Go
Threads.Reopen- Java
threads().reopen- C#
Threads.ReopenAsync- CLI
openemail threads reopen- MCP
reopenThreads
GET/threads/{id}/comments
List the comments on a thread
Oldest first. Comments are the team’s: everyone who can see the thread reads them, and the sender never does.
Requires the threads:read scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Returns
Every comment on the thread, oldest first.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
POST/threads/{id}/comments
Comment on a thread
Adds a comment for the team. Everybody in mentions is emailed, and each has to be able to see the thread, or the call is a 422 invalid_parameter on mentions.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.
Request body
bodystringRequiredWhat the comment says. The people on the thread see it; the sender never does.
1 to 10000 charactersmentionsstring[]The ids of people the comment mentions. Each has to be able to see the thread, and each is emailed.
Up to 20 itemsDefault[]
Returns
The comment.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
PATCH/threads/{id}/comments/{commentId}
Change a comment
Replaces its text and its mentions. Only its author can change it, and anybody newly mentioned is emailed. Someone else’s comment, or one on another thread, is a 404.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.commentIdstringRequiredThe id of a comment on that thread.
Request body
bodystringRequiredWhat the comment says. The people on the thread see it; the sender never does.
1 to 10000 charactersmentionsstring[]The ids of people the comment mentions. Each has to be able to see the thread, and each is emailed.
Up to 20 itemsDefault[]
Returns
The comment as it is now.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
DELETE/threads/{id}/comments/{commentId}
Delete a comment
Its author can delete it, and so can the workspace owner. Gone for good.
Requires the threads:write scope.
Path parameters
idstringRequiredThe thread, as
GET /threadsreturns it.commentIdstringRequiredThe id of a comment on that thread.
Returns
Deleted.
Errors
The errors every operation can return400401403404422429500Error catalog
Also available in
Objects
DeletedThreadCommentobject
objectstring- One of
"thread_comment" idstringthreadIdstringdeletedboolean- One of
true
TeamMemberobject
objectstringRequired- One of
"team_member" idstringRequiredTheir user id, what
assigneeIdandmentionstake.namestringRequired- Can be null
emailstringRequired
ThreadAssignmentobject
objectstringRequired- One of
"thread_assignment" threadIdstringRequiredassigneeTeamMemberRequiredassignedByTeamMemberRequiredassignedAtstringRequired- Can be nullFormat
date-time doneByTeamMemberRequireddoneAtstringRequired- Can be nullFormat
date-time
ThreadCommentobject
objectstringRequired- One of
"thread_comment" idstringRequiredthreadIdstringRequiredauthorTeamMemberRequiredbodystringRequired- Up to 10000 characters
mentionsTeamMember[]RequiredcreatedAtstringRequired- Format
date-time editedAtstringRequired- Can be nullFormat
date-time
ThreadCommentListobject
objectstring- One of
"list" dataThreadComment[]
ThreadTeamobject
objectstringRequired- One of
"thread_team" threadIdstringRequiredassignmentThreadAssignmentRequiredcommentCountintegerRequiredreplyingTeamMember[]RequiredOthers writing a reply in the app in the last 30 seconds.
teamTeamMember[]RequiredEveryone who can see the thread.