Skip to main content
Comments in item discussions, branch discussions, and reviews form threads. A conversation starts with a comment on an item or branch. Every reply attaches to that original comment. Use the FLOW_API_URL, FLOW_CUSTOMER, and FLOW_API_KEY variables from the quickstart, and the PROJECT_ID from Read entities. Set ENTITY_ID to the item or branch ID whose discussion you want. Set BRANCH_ID to the branch you are reading or posting on, or master for Base.

How thread IDs work

The entityId path parameter changes meaning with the task: Always reply with the original comment’s ID, even when you answer a later reply. If comment A starts a thread and B replies to A, answer B with entityId set to A. Using B creates a deeper nested reply. The API accepts it, but thread cards and AI thread reads in Flow do not consistently include deeper replies. Comments are scoped to a branch. Send the same branch_id on every list call and every post. Flow does not inherit the branch from the original comment. Omit branch_id or pass master for Base.

List conversations

List the comments that start conversations on an item or branch. Replies are not embedded in this list. Add include_resolved=true to include resolved threads.
Set THREAD_ID to the id of the conversation you want to read or join.

Read the replies

Call the same list endpoint with the original comment’s ID as entityId. Flow returns its direct replies, oldest first. Each reply’s entity_id is the original comment’s ID.
Each call returns direct replies only. Older threads can contain deeper replies. To read them, call the list endpoint again with that reply’s ID.

Reply in the thread

Post to the original comment’s ID with text and the same branch_id. Flow returns 201 with the new comment. Posting a reply does not resolve or reopen the thread.
To start a new conversation instead, post to ENTITY_ID with the same body.

Resolve the conversation

Update the original comment to resolve or reopen the whole thread. Pass the original comment’s ID as commentId and its entity_id as entityId. For a conversation starter, entity_id is the item or branch ID. Send resolved: false to reopen.
The same PATCH request edits a comment’s text. Only the author can delete a comment. Updates and deletes return 409 when the comment is busy with another write or is an immutable review explanation.

Comment endpoints