Docs API
Comments, users and skills
Read and post comments, list the workspace's people and skills, and find out who the integration is.
Base URLhttps://docs.polder.work
The comment object
{
"object": "comment",
"id": "01k8x3a4b6c8d0e2f4g6h8j0kl",
"parent": { "type": "page_id", "page_id": "01k8x2m4t7q9b3n5v6c8d0f2gh" },
"discussion_id": "01k8x3a4b6c8d0e2f4g6h8j0kl",
"created_time": "2026-10-02T10:00:00.000Z",
"last_edited_time": "2026-10-02T10:00:00.000Z",
"created_by": { "object": "user", "id": "3" },
"rich_text": [ { "type": "text", "text": { "content": "Deployed." }, "plain_text": "Deployed." } ],
"resolved": false
}
parent is a page_id for a comment on a page and a block_id for a comment on a block. discussion_id is the id of the first comment of the thread; for that comment it is its own id.
List comments
/api/v1/commentsLists the comments on a page or block, oldest discussion first, each followed by its replies, as a paginated list.
Query
| Parameter | Required | Description |
|---|---|---|
block_id |
yes | The page or block to read. Missing gives 400 validation_error |
start_cursor, page_size |
no | Pagination |
For a page, the list includes the discussions on blocks in its body, but not those inside sub-pages.
curl "https://docs.polder.work/api/v1/comments?block_id=01k8x2m4t7q9b3n5v6c8d0f2gh" \
-H "Authorization: Bearer $POLDER_DOCS_KEY"
Create a comment
/api/v1/commentsStarts a discussion on a page or block, or replies in one. Returns the new comment.
Body
| Field | Type | Required | Description |
|---|---|---|---|
rich_text |
array | yes | The text. At most 5000 characters, not empty |
parent |
object | for a new discussion | {"page_id": …} or {"block_id": …} |
discussion_id |
string | for a reply | The thread to reply in. An unknown id is a 404 |
Comments are plain text: formatting in rich_text is dropped. They are posted as the admin who created the integration, and the page's followers are notified as usual. The admin needs permission to comment on the page.
curl https://docs.polder.work/api/v1/comments \
-H "Authorization: Bearer $POLDER_DOCS_KEY" \
-H "Content-Type: application/json" \
-d '{"parent": {"page_id": "01k8x2m4t7q9b3n5v6c8d0f2gh"}, "rich_text": [{"text": {"content": "Deployed."}}]}'
Reply in a thread:
{ "discussion_id": "01k8x3a4b6c8d0e2f4g6h8j0kl", "rich_text": [ { "text": { "content": "Thanks!" } } ] }
List skills
/api/v1/skillsLists the workspace's skills (Settings → Skills in the app), A to Z by name, as a paginated list. Skills belong to the workspace, so no page has to be connected to the integration. Not in Notion's API.
curl https://docs.polder.work/api/v1/skills \
-H "Authorization: Bearer $POLDER_DOCS_KEY"
{
"object": "list",
"results": [
{
"object": "skill",
"id": "01k8x4b5c7d9e1f3g5h7j9k1lm",
"name": "Monthly review",
"slug": "monthly-review",
"description": "Write the monthly business review.",
"instructions": "Use our template…",
"created_time": "2026-10-08T10:00:00.000Z",
"last_edited_time": "2026-10-08T10:00:00.000Z"
}
],
"next_cursor": null,
"has_more": false,
"type": "skill",
"skill": {}
}
List users
/api/v1/usersLists the workspace's people by name, as a paginated list. Each has an email address.
curl https://docs.polder.work/api/v1/users \
-H "Authorization: Bearer $POLDER_DOCS_KEY"
{ "object": "user", "id": "3", "type": "person", "name": "Ann", "avatar_url": null, "person": { "email": "ann@example.com" } }
Retrieve the integration
/api/v1/users/meReturns the integration itself as a bot user. Needs no capability, so it is the easiest way to check a key.
curl https://docs.polder.work/api/v1/users/me \
-H "Authorization: Bearer $POLDER_DOCS_KEY"
{
"object": "user",
"id": "01k8x1z9y8x7w6v5u4t3s2r1qp",
"type": "bot",
"name": "Release script",
"avatar_url": null,
"bot": { "owner": { "type": "workspace", "workspace": true }, "workspace_name": "Acme" }
}
Note: The bot's
idis the integration's id. It never appears ascreated_byon anything: edits and comments name the admin who made the integration.
Retrieve a user
/api/v1/users/{id}Returns one person of the workspace (numeric id, as a string). 404 object_not_found for anyone who is not a member, or for an id that is not a number.
curl https://docs.polder.work/api/v1/users/3 \
-H "Authorization: Bearer $POLDER_DOCS_KEY"