Overview
Notion offers the ability for developers to add comments to pages and page content (i.e. blocks) within a workspace. Users may add comments:- To the top of a page.
- Inline to text or other blocks within a page.
When using the public API, inline comments can be used to respond to existing discussions.

Permissions
Before discussing how to use the public REST API to interact with comments, let’s first review who can comment on a page. Notion relies on a tiered system for page permissions, which can vary between:Can viewCan commentCan editFull access
Can comment access or higher (i.e. less restricted) to add comments to a page.
Integrations must also have comment permissions, which can be set in the Integrations dashboard.
Integrations are apps developers build to use the public API within a Notion workspace. Integrations must be given explicit permissions to read/write content in a workspace, included content related to comments.
Integration comments capabilities
To give your integration permission to interact with comments via the public REST API, you need to configure the integration to have comment capabilities. There are two relevant capabilities when it comes to comments — the ability to:- Read comments.
- Write (or insert) comments.

Comments in Notion’s UI vs. using the REST API
In the Notion UI, users can:- Add a comment to a page.
- Add an inline comment to child blocks on the page (i.e. comment on page content).
- Respond to an inline comment (i.e. add a comment to an existing discussion thread).
- Read open comments on a page or block.
- Read/re-open resolved comments on a page or block.
- Edit comments.
- Add a comment to a page.
- Respond to an inline comment (i.e. add a comment to an existing discussion thread).
- Read open comments on a block or page.
- Start a new discussion thread.
- Edit existing comments.
- Retrieve resolved comments.
Keep an eye on our Changelog for new features and updates to the REST API.
Retrieving comments for a page or block
The Retrieve comments endpoint can be used to list all open (or “un-resolved”) comments for a page or block. Whether you’re retrieving comments for a page or block, theblock_id query parameter is used. This is because pages are technically blocks.
This endpoint returns a flatlist of comments associated with the ID provided; however, some block types may support multiple discussion threads. This means there may be multiple discussion threads included in the response. When this is the case, comments from all discussion threads will be returned in ascending chronological order. The threads can be distinguished by sorting them discussion_id field on each comment object.
Adding a comment to a page
You can add a top-level comment to a page by using the Add comment to page endpoint. Requests made to this endpoint require the ID for the parent page, as well as a rich text body (i.e. the comment content).id and object fields. This is because the integration can create new comments but can’t retrieve comments, even if the retrieval is just the response for the newly created one. (Reminder: You can update the read/write settings in the Integrations dashboard.)
In the Notion UI, this new comment will be displayed on the page using your integration’s name and icon.
Inline comments
Responding to a discussion thread
The Add comment to page endpoint can also be used to respond to a discussion thread on a block. (Reminder: Page blocks are the child elements that make up the page content, like a paragraph, header, to-do list, etc.) If you’re using this endpoint to respond to a discussion, you will need to provide adiscussion_id parameter instead of a parent.page_id.
Inline comments cannot be directly added to blocks to start a new discussion using the public API. Currently, the API can only be used to respond to inline comments (discussions).
Retrieving a discussion ID
The are two possible ways to get thediscussion_id for a discussion thread.
- You can use the Retrieve comments endpoint, which will return a list of open comments on the page or block.
- You can also get a
discussion_idmanually by navigating to the page with the discussion you’re responding to. Next, click the “Copy link to discussion” menu option next to the discussion.

d query parameter is the discussion_id.
Once you have the discussion_id, you can make a request to respond to the thread like so:
Conclusion
In this guide, you learned about comment permissions and how to interact with page and block-level comments using Notion’s public REST API. There are many potential use-cases for this type of interaction, such as:- Commenting on a task when a related pull request is merged.
- Periodically pasting reminders to any pages that meet a certain criteria. For example, you could use the Query a database endpoint to search for a certain criteria and add a comment to any pages that do.
- For apps that use Notion as a CMS (Content Management System) — like a blog — users can give feedback to pages by adding a comment.
Next steps
- Check out the API reference documentation for the comments API.
- Update your version of the Notion JavaScript SDK to make use of this API:
npm install @notionhq/client@latest. - Clone our notion-sdk-typescript-starter template repository for an easy way to get started using the API with TypeScript.