# Project Feed > Project management with built-in file review. ## Product overview Every project gets a feed: posts, file feedback, and task updates in the order they happened. Made for studios. Project Feed organizes team activity around workspaces and projects. Teams can publish progress posts, manage tasks and time, write shared docs, arrange canvases, review files, and invite guests to selected work. The product is available through a web app. Developer workflows can also use the REST API, pf command-line client, MCP server, and webhooks. Features can depend on the user's role, project access, and workspace plan. The linked documentation states those requirements where they apply. ## Core workflows - Share progress posts with rich text and file attachments. - Organize related posts, tasks, docs, canvases, and files in projects. - Track tasks with assignees, status, priority, dates, and checklists. - Track task time with timers, manual entries, project summaries, and timesheets. - Talk through open questions in Chat discussions. - Comment on files and pin annotations to a spot, a timestamp, or a frame. - Write docs together, with version history. - Lay out notes, files, tasks, and posts on project canvases. - Share selected work through portals and public links. - Search workspace projects, posts, people, tags, files, docs, canvases, comments, annotations, and tasks. ## Documentation - [Help center](https://projectfeed.app/docs) - [Complete documentation index](https://projectfeed.app/llms-full.txt) - [XML sitemap](https://projectfeed.app/sitemap.xml) - [Getting started](https://projectfeed.app/docs/getting-started) - [Projects](https://projectfeed.app/docs/projects) - [Feed and posts](https://projectfeed.app/docs/posts) - [Chat](https://projectfeed.app/docs/chat) - [Tasks](https://projectfeed.app/docs/tasks) - [Time tracking](https://projectfeed.app/docs/time-tracking) - [Docs](https://projectfeed.app/docs/workspace-docs) - [Canvases](https://projectfeed.app/docs/canvases) - [Files](https://projectfeed.app/docs/files) - [File review](https://projectfeed.app/docs/review) - [Portals](https://projectfeed.app/docs/client-portals) - [Search](https://projectfeed.app/docs/search) - [Security](https://projectfeed.app/docs/security) - [Security reviews](https://projectfeed.app/docs/security/policies) - [Billing](https://projectfeed.app/docs/billing) - [Changelog](https://projectfeed.app/docs/changelog) ## Developer interfaces - [REST API](https://projectfeed.app/docs/api) - [OpenAPI document](https://projectfeed.app/openapi.json): Every REST endpoint and webhook event in OpenAPI 3.2. - [OpenAPI 3.1 document](https://projectfeed.app/openapi-3.1.json): The same description in OpenAPI 3.1 for tools that do not read 3.2. - [Scopes catalog](https://projectfeed.app/docs/catalog/scopes.json): Every scope and the routes that need it, as JSON. - [Error catalog](https://projectfeed.app/docs/catalog/errors.json): Error codes, statuses, and retry guidance, as JSON. - [Limits catalog](https://projectfeed.app/docs/catalog/limits.json): Rate limits and content size limits, as JSON. - [Webhook events catalog](https://projectfeed.app/docs/catalog/webhook-events.json): Event names and their documented payload fields, as JSON. - [Authentication](https://projectfeed.app/docs/api/authentication) - [Scopes and token types](https://projectfeed.app/docs/api/scopes) - [Conventions](https://projectfeed.app/docs/api/conventions) - [Errors](https://projectfeed.app/docs/api/errors) - [Rate limits](https://projectfeed.app/docs/api/rate-limits) - [pf CLI](https://projectfeed.app/docs/cli) - [MCP](https://projectfeed.app/docs/agents/mcp) - [MCP Server Card](https://projectfeed.app/api/mcp/server-card): Endpoint URL, protocol versions, and API key header for the MCP server. The AI Catalog is at https://projectfeed.app/.well-known/ai-catalog.json. - [Webhooks](https://projectfeed.app/docs/webhooks) - [Installed tool publishing](https://projectfeed.app/docs/installed-tools) - [Coding agents](https://projectfeed.app/docs/agents) - [Task-sync hooks for Claude Code](https://projectfeed.app/docs/agents/task-sync) - [Integration guidelines](https://projectfeed.app/docs/agents/guidelines) ## Product pages - [Feed](https://projectfeed.app/features/feed) - [Tasks](https://projectfeed.app/features/tasks) - [Time tracking](https://projectfeed.app/features/time-tracking) - [Docs](https://projectfeed.app/features/docs) - [Canvases](https://projectfeed.app/features/canvases) - [File review](https://projectfeed.app/features/file-review) - [Analytics](https://projectfeed.app/features/analytics) - [Agent handoffs](https://projectfeed.app/features/agent-handoffs) - [Integrations and API](https://projectfeed.app/features/integrations) - [Portals](https://projectfeed.app/features/portals) ## Pages for specific teams - [Game studios](https://projectfeed.app/teams/game-studios) - [Design studios](https://projectfeed.app/teams/design-studios) - [Hardware teams](https://projectfeed.app/teams/hardware-teams) ## Company links - [Home](https://projectfeed.app) - [Features](https://projectfeed.app/features) - [Pricing](https://projectfeed.app/pricing) - [About](https://projectfeed.app/about) - [Contact](https://projectfeed.app/contact) - [Security](https://projectfeed.app/security) - [Subprocessors](https://projectfeed.app/security/subprocessors) - [Changelog](https://projectfeed.app/updates) - [Showcase portal](https://projectfeed.app/p/showcase) - [Privacy](https://projectfeed.app/privacy) - [Terms](https://projectfeed.app/terms) - [Cookies](https://projectfeed.app/cookies) ## Optional - [Every documentation page as one Markdown file](https://projectfeed.app/llms-full.txt): Add .md to any documentation page URL to read that page alone as Markdown. ### API endpoints - [GET /api/v1/auth/check](https://projectfeed.app/docs/api/authentication.md): Check a key or token and return its owner, workspace, and effective scopes - [GET /api/v1/limits](https://projectfeed.app/docs/api/rate-limits.md): Read the current quota for the calling key without using any of it - [GET /api/v1/workspaces](https://projectfeed.app/docs/api/workspaces.md): List the workspaces the credential can reach - [GET /api/v1/workspaces/{slug}/members](https://projectfeed.app/docs/api/workspaces.md): List active members of the workspace in the path, with their workspace role - [GET /api/v1/workspaces/{slug}/projects/{projectId}/members](https://projectfeed.app/docs/api/workspaces.md): List the members added to a project, with their project role - [GET /api/v1/tool-artifacts](https://projectfeed.app/docs/api/tool-artifacts.md): Find a source artifact by its stable tool identity - [PUT /api/v1/tool-artifacts](https://projectfeed.app/docs/api/tool-artifacts.md): Create or update a source artifact mapping - [DELETE /api/v1/tool-artifacts](https://projectfeed.app/docs/api/tool-artifacts.md): Remove a source artifact mapping - [GET /api/v1/handoffs/wait](https://projectfeed.app/docs/api/handoffs.md): Open a WebSocket for handoff change hints - [GET /api/v1/handoffs/connection](https://projectfeed.app/docs/api/handoffs.md): Get tool connection - [POST /api/v1/handoffs/connections](https://projectfeed.app/docs/api/handoffs.md): Register this credential as a personal tool, with a recognizable name - [GET /api/v1/handoffs](https://projectfeed.app/docs/api/handoffs.md): List handoffs in one state, or in several at once - [POST /api/v1/handoffs](https://projectfeed.app/docs/api/handoffs.md): Request tool handoff - [POST /api/v1/handoffs/{id}/claim](https://projectfeed.app/docs/api/handoffs.md): Claim approved or open work for five minutes - [POST /api/v1/handoffs/{id}/renew](https://projectfeed.app/docs/api/handoffs.md): Renew an active claim for five minutes - [POST /api/v1/handoffs/{id}/ask](https://projectfeed.app/docs/api/handoffs.md): Pause work with one question - [POST /api/v1/handoffs/{id}/result](https://projectfeed.app/docs/api/handoffs.md): Submit a result for review - [POST /api/v1/tasks/{id}/worker-lease/acquire](https://projectfeed.app/docs/api/handoffs.md): Acquire exclusive task ownership for 30 to 300 seconds - [GET /api/v1/tasks/{id}/worker-lease/recovery](https://projectfeed.app/docs/api/handoffs.md): Read the exact task attempt recovered by a person for the current connection - [POST /api/v1/tasks/{id}/worker-lease/renew](https://projectfeed.app/docs/api/handoffs.md): Renew the same task lease - [POST /api/v1/tasks/{id}/worker-lease/release](https://projectfeed.app/docs/api/handoffs.md): Release the exact task lease after the worker and its tools have stopped - [POST /api/v1/tasks/{id}/worker-lease/complete](https://projectfeed.app/docs/api/handoffs.md): Record a bounded result for a task lease without a handoff - [GET /api/v1/tasks/{id}/handoff-connections](https://projectfeed.app/docs/api/handoffs.md): List task tool connections - [GET /api/v1/tasks/{id}/handoffs](https://projectfeed.app/docs/api/handoffs.md): List the handoffs on a task, newest first - [GET /api/v1/handoffs/{id}](https://projectfeed.app/docs/api/handoffs.md): Read a handoff, its saved task context, and the version to review before approval - [POST /api/v1/handoffs/{id}/decide](https://projectfeed.app/docs/api/handoffs.md): Approve, accept, reject, or cancel a personal tool handoff as the authenticated member - [POST /api/v1/handoffs/{id}/approve](https://projectfeed.app/docs/api/handoffs.md): Approve requested work when the authenticated member is the receiving person - [POST /api/v1/handoffs/{id}/refresh-context](https://projectfeed.app/docs/api/handoffs.md): Refresh tool handoff context - [POST /api/v1/handoffs/{id}/answer](https://projectfeed.app/docs/api/handoffs.md): Answer the receiving tool's question as the requesting or receiving person - [GET /api/v1/posts/{id}/tasks](https://projectfeed.app/docs/api/posts.md): List the tasks linked to a post, newest link first - [GET /api/v1/posts](https://projectfeed.app/docs/api/posts.md): List posts in your workspace - [POST /api/v1/posts](https://projectfeed.app/docs/api/posts.md): Create a new post - [GET /api/v1/posts/{id}](https://projectfeed.app/docs/api/posts.md): Get a single post by ID - [PATCH /api/v1/posts/{id}](https://projectfeed.app/docs/api/posts.md): Update a post you wrote - [DELETE /api/v1/posts/{id}](https://projectfeed.app/docs/api/posts.md): Delete a post - [GET /api/v1/posts/{id}/versions](https://projectfeed.app/docs/api/posts.md): List a post's versions, newest first - [POST /api/v1/posts/{id}/versions](https://projectfeed.app/docs/api/posts.md): Publish a new version of a post you wrote - [GET /api/v1/posts/{id}/versions/{version}](https://projectfeed.app/docs/api/posts.md): Get one version with its content and media - [GET /api/v1/posts/{id}/comments](https://projectfeed.app/docs/api/comments.md): List comments and annotations on a post, oldest first - [POST /api/v1/posts/{id}/comments](https://projectfeed.app/docs/api/comments.md): Add a comment, a reply, or an annotation on one of the post's media items - [GET /api/v1/posts/{id}/comments/wait](https://projectfeed.app/docs/api/comments.md): Wait for comments - [POST /api/v1/posts/{id}/comments/resolve-all](https://projectfeed.app/docs/api/comments.md): Mark every open annotation on one media item as addressed - [GET /api/v1/comments](https://projectfeed.app/docs/api/comments.md): List comments and annotations across every post you can read, newest first - [GET /api/v1/posts/{id}/comments/{commentId}](https://projectfeed.app/docs/api/comments.md): Get one comment with its annotation, reply count, and task - [PATCH /api/v1/posts/{id}/comments/{commentId}](https://projectfeed.app/docs/api/comments.md): Edit a comment's content, move an annotation, or change its review status - [DELETE /api/v1/posts/{id}/comments/{commentId}](https://projectfeed.app/docs/api/comments.md): Delete a comment - [POST /api/v1/posts/{id}/comments/{commentId}/resolve](https://projectfeed.app/docs/api/comments.md): Mark an annotation as resolved - [POST /api/v1/posts/{id}/comments/{commentId}/reopen](https://projectfeed.app/docs/api/comments.md): Reopen a resolved annotation - [GET /api/v1/posts/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/reactions.md): List the reactions on a post comment or annotation, counted by emoji - [POST /api/v1/posts/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/reactions.md): Add, remove, or toggle your reaction on a post comment or annotation - [POST /api/v1/posts/{id}/comments/{commentId}/task](https://projectfeed.app/docs/api/comments.md): Track an annotation in a task: create one in the post's project, or link an existing task - [GET /api/v1/posts/{id}/reactions](https://projectfeed.app/docs/api/reactions.md): List the reactions on a post, counted by emoji - [POST /api/v1/posts/{id}/reactions](https://projectfeed.app/docs/api/reactions.md): Add, remove, or toggle your reaction on a post - [GET /api/v1/reactions/custom](https://projectfeed.app/docs/api/reactions.md): List the workspace's custom reactions - [DELETE /api/v1/reactions/custom/{id}](https://projectfeed.app/docs/api/reactions.md): Delete a custom reaction - [POST /api/v1/posts/{id}/follow](https://projectfeed.app/docs/api/posts.md): Follow a post to be notified about its activity - [POST /api/v1/posts/{id}/mute](https://projectfeed.app/docs/api/posts.md): Mute a post to stop its activity notifications - [GET /api/v1/projects](https://projectfeed.app/docs/api/projects.md): List the projects you can access - [POST /api/v1/projects](https://projectfeed.app/docs/api/projects.md): Create a project - [GET /api/v1/projects/{id}](https://projectfeed.app/docs/api/projects.md): Get one project, including an archived one - [PATCH /api/v1/projects/{id}](https://projectfeed.app/docs/api/projects.md): Update, archive, or restore a project - [DELETE /api/v1/projects/{id}](https://projectfeed.app/docs/api/projects.md): Delete a project and its content - [POST /api/v1/projects/{id}/archive](https://projectfeed.app/docs/api/projects.md): Archive a project - [GET /api/v1/tasks](https://projectfeed.app/docs/api/tasks.md): List tasks - [POST /api/v1/tasks](https://projectfeed.app/docs/api/tasks.md): Create a task - [GET /api/v1/tasks/{id}/link-attachments](https://projectfeed.app/docs/api/tasks.md): List the web links attached to a task - [POST /api/v1/tasks/{id}/link-attachments](https://projectfeed.app/docs/api/tasks.md): Attach a web link to a task - [DELETE /api/v1/tasks/{id}/link-attachments/{linkId}](https://projectfeed.app/docs/api/tasks.md): Remove a web link from a task - [GET /api/v1/posts/{id}/link-attachments](https://projectfeed.app/docs/api/posts.md): List the web links attached to a post - [POST /api/v1/posts/{id}/link-attachments](https://projectfeed.app/docs/api/posts.md): Attach a web link to a post - [DELETE /api/v1/posts/{id}/link-attachments/{linkId}](https://projectfeed.app/docs/api/posts.md): Remove a web link from a post - [GET /api/v1/tasks/{id}/external-issue](https://projectfeed.app/docs/api/tasks.md): Check whether an issue can be created from a task - [POST /api/v1/tasks/{id}/external-issue](https://projectfeed.app/docs/api/tasks.md): Create a GitHub or Jira issue from a task - [GET /api/v1/tasks/counts](https://projectfeed.app/docs/api/tasks.md): Count your open tasks - [GET /api/v1/projects/{id}/task-counts](https://projectfeed.app/docs/api/projects.md): Count a project's top-level tasks by status - [GET /api/v1/task-views](https://projectfeed.app/docs/api/tasks.md): List your saved task views with their filters - [GET /api/v1/tasks/{id}](https://projectfeed.app/docs/api/tasks.md): Get a single task by ID - [PATCH /api/v1/tasks/{id}](https://projectfeed.app/docs/api/tasks.md): Update a task and return it - [DELETE /api/v1/tasks/{id}](https://projectfeed.app/docs/api/tasks.md): Move a task and its subtasks to the trash and send the task.deleted webhook - [GET /api/v1/tasks/{id}/comments](https://projectfeed.app/docs/api/tasks.md): List task comments - [POST /api/v1/tasks/{id}/comments](https://projectfeed.app/docs/api/tasks.md): Add a comment to a task - [DELETE /api/v1/tasks/{id}/comments](https://projectfeed.app/docs/api/tasks.md): Delete your comments on a task, or every comment if you are a workspace owner or admin - [GET /api/v1/tasks/{id}/activity](https://projectfeed.app/docs/api/tasks.md): List task activity - [PATCH /api/v1/tasks/{id}/comments/{commentId}](https://projectfeed.app/docs/api/tasks.md): Edit a task comment and return it - [DELETE /api/v1/tasks/{id}/comments/{commentId}](https://projectfeed.app/docs/api/tasks.md): Delete a single task comment - [GET /api/v1/tasks/{id}/subtasks](https://projectfeed.app/docs/api/tasks.md): List the subtasks of a task - [POST /api/v1/tasks/{id}/subtasks](https://projectfeed.app/docs/api/tasks.md): Create a subtask in the parent's project - [GET /api/v1/tasks/{id}/checklist](https://projectfeed.app/docs/api/tasks.md): List the checklist items on a task, in order, with who added each one and how - [POST /api/v1/tasks/{id}/checklist](https://projectfeed.app/docs/api/tasks.md): Add a checklist item to a task - [PATCH /api/v1/tasks/{id}/checklist/{itemId}](https://projectfeed.app/docs/api/tasks.md): Update a checklist item's text, its checked state, or both - [DELETE /api/v1/tasks/{id}/checklist/{itemId}](https://projectfeed.app/docs/api/tasks.md): Delete a checklist item - [POST /api/v1/tasks/{id}/checklist/{itemId}/move](https://projectfeed.app/docs/api/tasks.md): Move a checklist item to a new position in a checklist with up to 1000 items - [GET /api/v1/tasks/{id}/links](https://projectfeed.app/docs/api/tasks.md): List the posts linked to a task - [POST /api/v1/tasks/{id}/links](https://projectfeed.app/docs/api/tasks.md): Link a task to a post - [DELETE /api/v1/tasks/{id}/links](https://projectfeed.app/docs/api/tasks.md): Remove the post links from a task - [GET /api/v1/tasks/{id}/tags](https://projectfeed.app/docs/api/tasks.md): List the tags on a task - [POST /api/v1/tasks/{id}/tags](https://projectfeed.app/docs/api/tasks.md): Add a tag to a task - [PUT /api/v1/tasks/{id}/tags](https://projectfeed.app/docs/api/tasks.md): Replace all tags on a task - [DELETE /api/v1/tasks/{id}/tags/{tagId}](https://projectfeed.app/docs/api/tasks.md): Remove one tag from a task - [POST /api/v1/tasks/{id}/restore](https://projectfeed.app/docs/api/tasks.md): Restore task - [POST /api/v1/tasks/{id}/move](https://projectfeed.app/docs/api/tasks.md): Move task - [POST /api/v1/tasks/bulk](https://projectfeed.app/docs/api/tasks.md): Apply one board action to up to 50 tasks - [POST /api/v1/tasks/batch](https://projectfeed.app/docs/api/tasks.md): Create up to 50 tasks in one request - [DELETE /api/v1/tasks/{id}/links/{postId}](https://projectfeed.app/docs/api/tasks.md): Unlink one post from a task - [GET /api/v1/tasks/{id}/references](https://projectfeed.app/docs/api/tasks.md): List task references - [DELETE /api/v1/tasks/{id}/references/{referenceId}](https://projectfeed.app/docs/api/tasks.md): Remove a linked commit, pull request, issue, or file from a task - [GET /api/v1/tasks/{id}/attachments](https://projectfeed.app/docs/api/tasks.md): List files attached to a task - [GET /api/v1/tasks/{id}/reactions](https://projectfeed.app/docs/api/reactions.md): List the reactions on a task, counted by emoji - [POST /api/v1/tasks/{id}/reactions](https://projectfeed.app/docs/api/reactions.md): Add, remove, or toggle your reaction on a task - [GET /api/v1/tasks/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/reactions.md): List the reactions on a task comment, counted by emoji - [POST /api/v1/tasks/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/reactions.md): Add, remove, or toggle your reaction on a task comment - [GET /api/v1/tags](https://projectfeed.app/docs/api/tags.md): List the workspace tags and the project tags in projects the key's user can open - [POST /api/v1/tags](https://projectfeed.app/docs/api/tags.md): Create a workspace tag, or a project tag when projectId is set - [GET /api/v1/tags/{id}](https://projectfeed.app/docs/api/tags.md): Get one tag - [PATCH /api/v1/tags/{id}](https://projectfeed.app/docs/api/tags.md): Rename, recolor, or describe a tag - [DELETE /api/v1/tags/{id}](https://projectfeed.app/docs/api/tags.md): Delete a tag - [POST /api/v1/tags/{id}/promote](https://projectfeed.app/docs/api/tags.md): Turn a project tag into a workspace tag so every project can use it - [GET /api/v1/posts/{id}/tags](https://projectfeed.app/docs/api/posts.md): List the tags on a post - [POST /api/v1/posts/{id}/tags](https://projectfeed.app/docs/api/posts.md): Add one tag to a post without changing its other tags - [PUT /api/v1/posts/{id}/tags](https://projectfeed.app/docs/api/posts.md): Replace all tags on a post - [DELETE /api/v1/posts/{id}/tags/{tagId}](https://projectfeed.app/docs/api/posts.md): Remove one tag from a post - [DELETE /api/v1/posts/{id}/provider-files](https://projectfeed.app/docs/api/posts.md): Remove a Figma or Google Drive file from a post - [POST /api/v1/posts/{id}/restore](https://projectfeed.app/docs/api/posts.md): Restore a deleted post along with the comments that were deleted with it - [GET /api/v1/posts/{id}/share-links](https://projectfeed.app/docs/api/posts.md): List a post's public share links that are not revoked - [POST /api/v1/posts/{id}/share-links](https://projectfeed.app/docs/api/posts.md): Create a public share link for a published post - [DELETE /api/v1/posts/{id}/share-links/{linkId}](https://projectfeed.app/docs/api/posts.md): Revoke a share link so its URL stops working - [GET /api/v1/share-links](https://projectfeed.app/docs/api/posts.md): List every share link in the workspace, newest first - [GET /api/v1/me/bookmarks](https://projectfeed.app/docs/api/posts.md): List the posts you bookmarked in this workspace, newest bookmark first - [PUT /api/v1/posts/{id}/bookmark](https://projectfeed.app/docs/api/posts.md): Bookmark a post for yourself - [DELETE /api/v1/posts/{id}/bookmark](https://projectfeed.app/docs/api/posts.md): Remove your bookmark from a post - [GET /api/v1/posts/{id}/activity](https://projectfeed.app/docs/api/posts.md): List post activity - [GET /api/v1/notifications](https://projectfeed.app/docs/api/notifications.md): List the key owner's notifications in this workspace, newest first - [GET /api/v1/notifications/unread-count](https://projectfeed.app/docs/api/notifications.md): Count the key owner's unread notifications in this workspace - [POST /api/v1/notifications/read-all](https://projectfeed.app/docs/api/notifications.md): Mark all of the key owner's unread notifications in this workspace as read - [PATCH /api/v1/notifications/{id}](https://projectfeed.app/docs/api/notifications.md): Mark one notification read or unread - [DELETE /api/v1/notifications/{id}](https://projectfeed.app/docs/api/notifications.md): Delete one notification - [POST /api/v1/notifications/read](https://projectfeed.app/docs/api/notifications.md): Mark notifications read - [POST /api/v1/notifications/delete-read](https://projectfeed.app/docs/api/notifications.md): Delete all of the key owner's read notifications in this workspace - [POST /api/v1/notifications/delete-old](https://projectfeed.app/docs/api/notifications.md): Delete old notifications - [PUT /api/v1/notifications/projects/{projectId}](https://projectfeed.app/docs/api/notifications.md): Set project notification level - [GET /api/v1/notifications/preferences](https://projectfeed.app/docs/api/notifications.md): Get the key owner's notification preferences for this workspace - [PATCH /api/v1/notifications/preferences](https://projectfeed.app/docs/api/notifications.md): Change the key owner's notification preferences for this workspace - [GET /api/v1/webhooks](https://projectfeed.app/docs/api/webhooks.md): List webhooks visible to the authenticated key owner - [POST /api/v1/webhooks](https://projectfeed.app/docs/api/webhooks.md): Create a webhook - [GET /api/v1/webhooks/events](https://projectfeed.app/docs/api/webhooks.md): List webhook events - [GET /api/v1/webhooks/{id}](https://projectfeed.app/docs/api/webhooks.md): Get a webhook visible to the authenticated key owner - [PATCH /api/v1/webhooks/{id}](https://projectfeed.app/docs/api/webhooks.md): Update webhook - [DELETE /api/v1/webhooks/{id}](https://projectfeed.app/docs/api/webhooks.md): Delete a webhook and its delivery records - [POST /api/v1/webhooks/{id}/test](https://projectfeed.app/docs/api/webhooks.md): Send a webhook.test payload and return the receiver result - [POST /api/v1/webhooks/{id}/regenerate-secret](https://projectfeed.app/docs/api/webhooks.md): Replace the signing secret - [GET /api/v1/webhooks/{id}/deliveries](https://projectfeed.app/docs/api/webhooks.md): List delivery status records, newest first, without the original payload - [GET /api/v1/webhooks/{id}/deliveries/{deliveryId}](https://projectfeed.app/docs/api/webhooks.md): Get webhook delivery - [POST /api/v1/webhooks/{id}/replay](https://projectfeed.app/docs/api/webhooks.md): Replay webhook events - [GET /api/v1/events/channel](https://projectfeed.app/docs/api/webhooks.md): Open an authenticated event WebSocket for a local Claude Code channel - [GET /api/v1/events](https://projectfeed.app/docs/api/webhooks.md): List events - [GET /api/v1/events/{id}](https://projectfeed.app/docs/api/webhooks.md): Get one stored event by its event ID - [POST /api/v1/webhooks/{id}/deliveries/{deliveryId}/retry](https://projectfeed.app/docs/api/webhooks.md): Retry one failed delivery with its stored payload - [POST /api/v1/domains/verify](https://projectfeed.app/docs/api/domains.md): Verify domain - [GET /api/v1/domains/check-dns](https://projectfeed.app/docs/api/domains.md): Look up DNS records for any domain without changing anything stored - [GET /api/v1/me](https://projectfeed.app/docs/api/me.md): Get the profile of the credential's owner - [PATCH /api/v1/me](https://projectfeed.app/docs/api/me.md): Change the display name or the display name preference, and return the profile - [GET /api/v1/me/orgs](https://projectfeed.app/docs/api/me.md): List the workspaces the credential's owner belongs to - [GET /api/v1/me/api-keys](https://projectfeed.app/docs/api/me.md): List the owner's personal API tokens, newest first, up to 100, including revoked ones - [GET /api/v1/me/notifications](https://projectfeed.app/docs/api/me.md): List the owner's notifications across workspaces, newest first - [GET /api/v1/me/notifications/unread-count](https://projectfeed.app/docs/api/me.md): Get my unread notification count - [POST /api/v1/me/notifications/read-all](https://projectfeed.app/docs/api/me.md): Mark all my notifications read - [PATCH /api/v1/me/notifications/{id}](https://projectfeed.app/docs/api/me.md): Mark one notification read or unread - [GET /api/v1/me/notification-preferences](https://projectfeed.app/docs/api/me.md): Get my notification preferences - [PATCH /api/v1/me/notification-preferences](https://projectfeed.app/docs/api/me.md): Change the owner's account-default notification preferences - [GET /api/v1/me/push-subscriptions](https://projectfeed.app/docs/api/me.md): List the owner's web push subscriptions, newest first, up to 100 - [DELETE /api/v1/me/push-subscriptions/{id}](https://projectfeed.app/docs/api/me.md): Revoke one push subscription - [POST /api/v1/media/uploads](https://projectfeed.app/docs/api/files.md): Prepare an upload for a destination and get an upload token with transfer instructions - [POST /api/v1/media/uploads/complete](https://projectfeed.app/docs/api/files.md): Verify the transferred bytes and attach the file to its destination - [POST /api/v1/media/uploads/status](https://projectfeed.app/docs/api/files.md): Check an upload by its token - [POST /api/v1/media/direct](https://projectfeed.app/docs/api/files.md): Installed tools only - [GET /api/v1/media](https://projectfeed.app/docs/api/files.md): List files on posts, comments, tasks, or task comments, newest first - [POST /api/v1/media](https://projectfeed.app/docs/api/files.md): Upload a file of up to 50 MiB as base64 in a JSON request - [GET /api/v1/media/stats](https://projectfeed.app/docs/api/files.md): Count the files you can see on posts, by kind - [GET /api/v1/media/{id}/posts](https://projectfeed.app/docs/api/files.md): List the posts a file on a post appears on - [POST /api/v1/media/{id}/retry-conversion](https://projectfeed.app/docs/api/files.md): Queue a failed 3D model conversion again - [PUT /api/v1/posts/{id}/media/order](https://projectfeed.app/docs/api/files.md): Set the order of a post's files - [GET /api/v1/media/{id}](https://projectfeed.app/docs/api/files.md): Get one file by ID - [DELETE /api/v1/media/{id}](https://projectfeed.app/docs/api/files.md): Delete a file - [GET /api/v1/audit-logs](https://projectfeed.app/docs/api/audit-logs.md): Export workspace audit logs for a time range as JSON, CSV, or CEF - [GET /api/v1/canvases](https://projectfeed.app/docs/api/canvases.md): List canvases in the authenticated workspace - [POST /api/v1/canvases](https://projectfeed.app/docs/api/canvases.md): Create a canvas - [GET /api/v1/canvases/{id}](https://projectfeed.app/docs/api/canvases.md): Get one canvas with its items and connectors - [PATCH /api/v1/canvases/{id}](https://projectfeed.app/docs/api/canvases.md): Update canvas metadata - [DELETE /api/v1/canvases/{id}](https://projectfeed.app/docs/api/canvases.md): Delete a canvas - [POST /api/v1/canvases/{id}/archive](https://projectfeed.app/docs/api/canvases.md): Archive a canvas - [POST /api/v1/canvases/{id}/unarchive](https://projectfeed.app/docs/api/canvases.md): Restore an archived canvas - [GET /api/v1/canvases/{id}/items](https://projectfeed.app/docs/api/canvases.md): List the items on a canvas in creation order, one page at a time - [POST /api/v1/canvases/{id}/items](https://projectfeed.app/docs/api/canvases.md): Add an item to a canvas - [GET /api/v1/canvases/{id}/items/{itemId}](https://projectfeed.app/docs/api/canvases.md): Get one item, with the same fields as an entry in the canvas - [PATCH /api/v1/canvases/{id}/items/{itemId}](https://projectfeed.app/docs/api/canvases.md): Move, resize, restyle, group, lock, or reorder a canvas item, or change its text - [DELETE /api/v1/canvases/{id}/items/{itemId}](https://projectfeed.app/docs/api/canvases.md): Delete a canvas item - [GET /api/v1/docs](https://projectfeed.app/docs/api/docs.md): List the docs you can see, most recently updated first - [POST /api/v1/docs](https://projectfeed.app/docs/api/docs.md): Create a doc at the end of the top level of a space - [GET /api/v1/docs/{id}](https://projectfeed.app/docs/api/docs.md): Get one doc with its content - [PATCH /api/v1/docs/{id}](https://projectfeed.app/docs/api/docs.md): Change a doc's title, icon, width, or visibility - [DELETE /api/v1/docs/{id}](https://projectfeed.app/docs/api/docs.md): Delete a doc that has no subdocs - [PUT /api/v1/docs/{id}/content](https://projectfeed.app/docs/api/docs.md): Replace the whole content of a doc and record a version - [GET /api/v1/docs/{id}/versions](https://projectfeed.app/docs/api/docs.md): List saved versions of a doc, newest first - [POST /api/v1/docs/{id}/versions/{version}/restore](https://projectfeed.app/docs/api/docs.md): Replace the doc with an earlier version - [POST /api/v1/docs/{id}/archive](https://projectfeed.app/docs/api/docs.md): Archive a doc - [POST /api/v1/docs/{id}/restore](https://projectfeed.app/docs/api/docs.md): Restore an archived doc - [GET /api/v1/docs/{id}/comments](https://projectfeed.app/docs/api/docs.md): List comments and replies on a doc, newest first, including inline comments - [POST /api/v1/docs/{id}/comments](https://projectfeed.app/docs/api/docs.md): Create a comment or reply - [PATCH /api/v1/docs/{id}/comments/{commentId}](https://projectfeed.app/docs/api/docs.md): Edit your own comment - [DELETE /api/v1/docs/{id}/comments/{commentId}](https://projectfeed.app/docs/api/docs.md): Delete a comment - [POST /api/v1/docs/{id}/comments/{commentId}/resolve](https://projectfeed.app/docs/api/docs.md): Resolve a comment thread - [POST /api/v1/docs/{id}/comments/{commentId}/reopen](https://projectfeed.app/docs/api/docs.md): Reopen a resolved comment thread - [GET /api/v1/docs/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/docs.md): List reaction counts on a comment - [POST /api/v1/docs/{id}/comments/{commentId}/reactions](https://projectfeed.app/docs/api/docs.md): Add your reaction to a comment, remove it, or toggle it - [POST /api/v1/docs/{id}/move](https://projectfeed.app/docs/api/docs.md): Move a doc and its subdocs to another parent, position, or space - [POST /api/v1/docs/{id}/duplicate](https://projectfeed.app/docs/api/docs.md): Copy a doc into a new doc titled with (copy) at the end of the same parent - [POST /api/v1/docs/{id}/lock](https://projectfeed.app/docs/api/docs.md): Lock a doc so only workspace owners and admins can edit or move it - [POST /api/v1/docs/{id}/unlock](https://projectfeed.app/docs/api/docs.md): Unlock a doc so members with edit access can change it again - [POST /api/v1/docs/{id}/watch](https://projectfeed.app/docs/api/docs.md): Watch a doc so it shows as Watching in the Docs directory - [POST /api/v1/docs/{id}/unwatch](https://projectfeed.app/docs/api/docs.md): Stop watching a doc - [GET /api/v1/spaces](https://projectfeed.app/docs/api/spaces.md): List docs spaces - [POST /api/v1/spaces](https://projectfeed.app/docs/api/spaces.md): Create a docs space - [GET /api/v1/spaces/{id}](https://projectfeed.app/docs/api/spaces.md): Get one docs space - [PATCH /api/v1/spaces/{id}](https://projectfeed.app/docs/api/spaces.md): Rename a space or change its details or visibility - [DELETE /api/v1/spaces/{id}](https://projectfeed.app/docs/api/spaces.md): Delete an archived space that holds no docs, archived docs included - [POST /api/v1/spaces/{id}/archive](https://projectfeed.app/docs/api/spaces.md): Archive a space and its docs - [POST /api/v1/spaces/{id}/restore](https://projectfeed.app/docs/api/spaces.md): Restore an archived space - [GET /api/v1/search](https://projectfeed.app/docs/api/search.md): Search the authenticated workspace - [GET /api/v1/time-entries](https://projectfeed.app/docs/api/time.md): List time entries, newest occurredOn first - [POST /api/v1/time-entries](https://projectfeed.app/docs/api/time.md): Log time on a task - [GET /api/v1/time-entries/{id}](https://projectfeed.app/docs/api/time.md): Get one time entry - [PATCH /api/v1/time-entries/{id}](https://projectfeed.app/docs/api/time.md): Change an entry's duration, date, or note - [DELETE /api/v1/time-entries/{id}](https://projectfeed.app/docs/api/time.md): Delete a time entry - [GET /api/v1/timer](https://projectfeed.app/docs/api/time.md): Get your running timer, or timer: null when none is running - [POST /api/v1/timer/start](https://projectfeed.app/docs/api/time.md): Start a timer on a task - [POST /api/v1/timer/stop](https://projectfeed.app/docs/api/time.md): Stop your timer and log the time, dated when the timer started - [POST /api/v1/timer/switch](https://projectfeed.app/docs/api/time.md): Switch timer - [GET /api/v1/tasks/{id}/time](https://projectfeed.app/docs/api/time.md): Get task time - [GET /api/v1/time-entries/summary](https://projectfeed.app/docs/api/time.md): Total logged time over a date range, grouped by day, task, or person - [POST /api/v1/time-entries/bulk](https://projectfeed.app/docs/api/time.md): Log the same duration on a task on several dates - [POST /api/v1/time-entries/duplicate](https://projectfeed.app/docs/api/time.md): Log copies of up to 100 time entries on one date, for the key's user - [POST /api/v1/time-entries/{id}/duplicate](https://projectfeed.app/docs/api/time.md): Log a copy of a time entry for the key's user, on the same task with the same duration - [GET /api/v1/chat/rooms](https://projectfeed.app/docs/api/chat.md): List the rooms the caller can open - [POST /api/v1/chat/rooms](https://projectfeed.app/docs/api/chat.md): Open the Workspace room, or a project's room when projectId is set - [GET /api/v1/chat/rooms/{roomId}](https://projectfeed.app/docs/api/chat.md): Get one room - [GET /api/v1/chat/rooms/{roomId}/threads](https://projectfeed.app/docs/api/chat.md): List discussions in a room, most recent activity first - [POST /api/v1/chat/rooms/{roomId}/threads](https://projectfeed.app/docs/api/chat.md): Start a discussion - [GET /api/v1/chat/rooms/{roomId}/threads/{threadId}](https://projectfeed.app/docs/api/chat.md): Get one discussion - [PATCH /api/v1/chat/rooms/{roomId}/threads/{threadId}](https://projectfeed.app/docs/api/chat.md): Rename a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/resolve](https://projectfeed.app/docs/api/chat.md): Resolve a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/reopen](https://projectfeed.app/docs/api/chat.md): Reopen a resolved discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/pin](https://projectfeed.app/docs/api/chat.md): Pin a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/unpin](https://projectfeed.app/docs/api/chat.md): Unpin a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/follow](https://projectfeed.app/docs/api/chat.md): Follow a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/unfollow](https://projectfeed.app/docs/api/chat.md): Stop following a discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/mute](https://projectfeed.app/docs/api/chat.md): Mute a discussion - [GET /api/v1/chat/rooms/{roomId}/messages](https://projectfeed.app/docs/api/chat.md): List room messages across discussions, oldest to newest within a page - [GET /api/v1/chat/rooms/{roomId}/threads/{threadId}/messages](https://projectfeed.app/docs/api/chat.md): List the messages in one discussion - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/messages](https://projectfeed.app/docs/api/chat.md): Reply in a discussion - [GET /api/v1/chat/rooms/{roomId}/messages/{messageId}](https://projectfeed.app/docs/api/chat.md): Get one message - [PATCH /api/v1/chat/rooms/{roomId}/messages/{messageId}](https://projectfeed.app/docs/api/chat.md): Edit a message you wrote - [DELETE /api/v1/chat/rooms/{roomId}/messages/{messageId}](https://projectfeed.app/docs/api/chat.md): Delete a message - [GET /api/v1/chat/rooms/{roomId}/messages/{messageId}/reactions](https://projectfeed.app/docs/api/chat.md): List reactions on a message - [POST /api/v1/chat/rooms/{roomId}/messages/{messageId}/reactions](https://projectfeed.app/docs/api/chat.md): Add, remove, or toggle your reaction on a message - [GET /api/v1/chat/rooms/{roomId}/threads/{threadId}/links](https://projectfeed.app/docs/api/chat.md): List the items linked to a discussion that you can open - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/links](https://projectfeed.app/docs/api/chat.md): Link an item you can open to a discussion - [DELETE /api/v1/chat/rooms/{roomId}/threads/{threadId}/links/{linkId}](https://projectfeed.app/docs/api/chat.md): Remove a linked item - [GET /api/v1/chat/discussions](https://projectfeed.app/docs/api/chat.md): List the discussions about an item - [POST /api/v1/chat/discussions](https://projectfeed.app/docs/api/chat.md): Start a discussion about an item, the same as Discuss in Chat - [GET /api/v1/chat/agents](https://projectfeed.app/docs/api/chat.md): List the chat agents in this workspace - [POST /api/v1/chat/agents](https://projectfeed.app/docs/api/chat.md): Create a chat agent - [GET /api/v1/portals](https://projectfeed.app/docs/api/portals.md): List portals, newest first - [POST /api/v1/portals](https://projectfeed.app/docs/api/portals.md): Create a portal - [GET /api/v1/portals/{id}](https://projectfeed.app/docs/api/portals.md): Get portal - [PATCH /api/v1/portals/{id}](https://projectfeed.app/docs/api/portals.md): Change a portal's settings - [GET /api/v1/portals/{id}/contacts](https://projectfeed.app/docs/api/portals.md): List the guests invited to a portal, newest first - [POST /api/v1/portals/{id}/contacts](https://projectfeed.app/docs/api/portals.md): Invite a guest to an invited portal and email them - [GET /api/v1/portals/{id}/items](https://projectfeed.app/docs/api/portals.md): List portal items - [POST /api/v1/portals/{id}/items](https://projectfeed.app/docs/api/portals.md): Share a published post version on a portal - [GET /api/v1/portals/{id}/events](https://projectfeed.app/docs/api/portals.md): List what guests and the team did on a portal, newest first - [GET /api/v1/portals/{id}/insights](https://projectfeed.app/docs/api/portals.md): Get portal insights - [GET /api/v1/portals/{id}/feedback](https://projectfeed.app/docs/api/portals.md): List client feedback threads on one portal, newest first - [GET /api/v1/portals/{id}/discussion](https://projectfeed.app/docs/api/portals.md): Look up a portal's discussion thread without creating it - [POST /api/v1/portals/{id}/discussion](https://projectfeed.app/docs/api/portals.md): Open the portal's discussion thread if it has none, and return it - [GET /api/v1/portals/slug-availability](https://projectfeed.app/docs/api/portals.md): Check whether a public portal address is valid and free - [GET /api/v1/portals/{id}/members](https://projectfeed.app/docs/api/portals.md): List portal members - [GET /api/v1/portals/{id}/comments](https://projectfeed.app/docs/api/portals.md): List the guest comments on a public portal that wait for approval, oldest first - [GET /api/v1/portals/{id}/items/{itemId}/comments](https://projectfeed.app/docs/api/portals.md): List portal item comments - [POST /api/v1/portals/{id}/items/{itemId}/comments](https://projectfeed.app/docs/api/portals.md): Post a comment under a shared post as the team, or reply to a visible top-level comment - [GET /api/v1/client-feedback](https://projectfeed.app/docs/api/portals.md): List open client feedback threads across every portal, newest first - [POST /api/v1/client-feedback](https://projectfeed.app/docs/api/portals.md): Start a team message thread on a shared portal item - [GET /api/v1/client-feedback/count](https://projectfeed.app/docs/api/portals.md): Count open client feedback threads across every portal - [GET /api/v1/client-feedback/{id}](https://projectfeed.app/docs/api/portals.md): Get one feedback thread with its replies, oldest first - [GET /api/v1/posts/{id}/client-feedback](https://projectfeed.app/docs/api/portals.md): List the client feedback threads on a post, grouped by portal - [GET /api/v1/portal-submissions](https://projectfeed.app/docs/api/portals.md): List bug reports and requests sent through portals, newest first - [GET /api/v1/portal-submissions/{id}](https://projectfeed.app/docs/api/portals.md): Get one report with its replies, form field values, and attachments - [GET /api/v1/tasks/{id}/portal-submissions](https://projectfeed.app/docs/api/portals.md): List task portal submissions - [POST /api/v1/client-feedback/{id}/replies](https://projectfeed.app/docs/api/portals.md): Reply in a feedback thread - [POST /api/v1/client-feedback/{id}/resolve](https://projectfeed.app/docs/api/portals.md): Resolve a feedback thread - [POST /api/v1/client-feedback/{id}/reopen](https://projectfeed.app/docs/api/portals.md): Reopen a resolved feedback thread - [POST /api/v1/client-feedback/{id}/address](https://projectfeed.app/docs/api/portals.md): Tell the guest a change request was fixed in a newer shared version so they can verify it - [PUT /api/v1/client-feedback/{id}/status](https://projectfeed.app/docs/api/portals.md): Set a thread's team status - [POST /api/v1/client-feedback/{id}/reactions](https://projectfeed.app/docs/api/portals.md): Add, remove, or toggle your emoji reaction on a feedback message - [POST /api/v1/portal-submissions/{id}/task](https://projectfeed.app/docs/api/portals.md): Create a task from a report and link the two - [POST /api/v1/portal-submissions/{id}/link-task](https://projectfeed.app/docs/api/portals.md): Link a report to an existing task - [POST /api/v1/portal-submissions/{id}/replies](https://projectfeed.app/docs/api/portals.md): Reply to a report - [POST /api/v1/portal-submissions/{id}/dismiss](https://projectfeed.app/docs/api/portals.md): Dismiss a new report without making a task - [POST /api/v1/portal-submissions/{id}/spam](https://projectfeed.app/docs/api/portals.md): Mark a new report as spam - [POST /api/v1/portal-submissions/{id}/unspam](https://projectfeed.app/docs/api/portals.md): Move a spam report back to new and lift the blocks that report caused - [POST /api/v1/portal-submissions/{id}/reopen](https://projectfeed.app/docs/api/portals.md): Move an accepted, duplicate, or dismissed report back to new and unlink its task - [PUT /api/v1/portal-submissions/{id}/board](https://projectfeed.app/docs/api/portals.md): Show a report on a public portal's voting board or take it off - [DELETE /api/v1/portals/{id}/items/{itemId}](https://projectfeed.app/docs/api/portals.md): Take a shared post off a portal - [PUT /api/v1/portals/{id}/items/{itemId}/decision-request](https://projectfeed.app/docs/api/portals.md): Ask the client to approve or request changes on a shared post, or withdraw the request - [GET /api/v1/portals/{id}/docs](https://projectfeed.app/docs/api/portals.md): List portal docs - [POST /api/v1/portals/{id}/docs](https://projectfeed.app/docs/api/portals.md): Share a doc on a portal - [POST /api/v1/portals/{id}/revoke](https://projectfeed.app/docs/api/portals.md): Close a portal - [POST /api/v1/portals/{id}/rotate-token](https://projectfeed.app/docs/api/portals.md): Reset the portal's private link token - [POST /api/v1/portals/{id}/contacts/{contactId}/resend-invite](https://projectfeed.app/docs/api/portals.md): Send a guest their invite again - [DELETE /api/v1/portals/{id}/contacts/{contactId}](https://projectfeed.app/docs/api/portals.md): Remove a guest's access to a portal - [PATCH /api/v1/portals/{id}/docs/{pageId}](https://projectfeed.app/docs/api/portals.md): Change how guests can use a shared doc - [DELETE /api/v1/portals/{id}/docs/{pageId}](https://projectfeed.app/docs/api/portals.md): Stop sharing a doc on a portal - [PATCH /api/v1/portals/{id}/branding](https://projectfeed.app/docs/api/portals.md): Change a portal's theme or accent color, or remove its logo - [PUT /api/v1/portals/{id}/sections](https://projectfeed.app/docs/api/portals.md): Turn sections on or off - [PUT /api/v1/portals/{id}/links](https://projectfeed.app/docs/api/portals.md): Replace the links shown on a portal - [PUT /api/v1/portals/{id}/access](https://projectfeed.app/docs/api/portals.md): Open a portal to anyone with its address (public), or limit it to invited guests - [PUT /api/v1/portals/{id}/feedback-config](https://projectfeed.app/docs/api/portals.md): Replace a portal's feedback settings - [PUT /api/v1/portals/{id}/indexing](https://projectfeed.app/docs/api/portals.md): Let search engines index a public portal, or keep them out - [PUT /api/v1/portals/{id}/updates-config](https://projectfeed.app/docs/api/portals.md): Replace a portal's updates settings - [PUT /api/v1/portals/{id}/moderation-config](https://projectfeed.app/docs/api/portals.md): Set how new member comments are held on a public portal - [POST /api/v1/portals/{id}/apply-template](https://projectfeed.app/docs/api/portals.md): Reset a portal's kind, sections, updates settings, and discussion switch to a preset - [PUT /api/v1/portals/{id}/members/{memberId}/blocked](https://projectfeed.app/docs/api/portals.md): Block a member so they can no longer comment, or lift the block - [POST /api/v1/portals/{id}/comments/{commentId}/approve](https://projectfeed.app/docs/api/portals.md): Approve a comment that waits for approval so it shows on the portal - [POST /api/v1/portals/{id}/comments/{commentId}/reject](https://projectfeed.app/docs/api/portals.md): Reject a comment that waits for approval - [POST /api/v1/portals/{id}/comments/{commentId}/hide](https://projectfeed.app/docs/api/portals.md): Hide a visible comment - [POST /api/v1/portals/{id}/comments/{commentId}/unhide](https://projectfeed.app/docs/api/portals.md): Show a hidden comment again - [POST /api/v1/webhooks/inbound/tasks](https://projectfeed.app/docs/api/inbound-webhooks.md): Create a task, or update the task with the same source and externalId - [POST /api/v1/webhooks/inbound/posts](https://projectfeed.app/docs/api/inbound-webhooks.md): Create a post, or update the post with the same source and externalId - [POST /api/v1/webhooks/inbound/comments](https://projectfeed.app/docs/api/inbound-webhooks.md): Ingest comment webhook - [POST /api/v1/projects/{id}/members](https://projectfeed.app/docs/api/projects.md): Add a workspace member to a project - [PATCH /api/v1/projects/{id}/members/{userId}](https://projectfeed.app/docs/api/projects.md): Change a project member's role - [DELETE /api/v1/projects/{id}/members/{userId}](https://projectfeed.app/docs/api/projects.md): Remove a member from a project - [GET /api/v1/projects/{id}/links](https://projectfeed.app/docs/api/projects.md): List the links shown on a project, in display order - [POST /api/v1/projects/{id}/links](https://projectfeed.app/docs/api/projects.md): Add an http or https link to a project - [PUT /api/v1/projects/{id}/links/order](https://projectfeed.app/docs/api/projects.md): Set the display order of the project's links - [PATCH /api/v1/projects/{id}/links/{linkId}](https://projectfeed.app/docs/api/projects.md): Change a project link - [DELETE /api/v1/projects/{id}/links/{linkId}](https://projectfeed.app/docs/api/projects.md): Remove a link from a project - [DELETE /api/v1/projects/{id}/icon](https://projectfeed.app/docs/api/projects.md): Remove the project icon, whether it is an uploaded image or a preset - [DELETE /api/v1/projects/{id}/header-image](https://projectfeed.app/docs/api/projects.md): Remove the project header image - [PATCH /api/v1/workspaces/{slug}/members/{userId}](https://projectfeed.app/docs/api/workspaces.md): Change a workspace member's role - [DELETE /api/v1/workspaces/{slug}/members/{userId}](https://projectfeed.app/docs/api/workspaces.md): Remove a member from the workspace - [GET /api/v1/workspaces/{slug}/invitations](https://projectfeed.app/docs/api/workspaces.md): List the pending invitations - [POST /api/v1/workspaces/{slug}/invitations](https://projectfeed.app/docs/api/workspaces.md): Invite someone by email and send the invitation email - [POST /api/v1/workspaces/{slug}/invitations/{invitationId}/resend](https://projectfeed.app/docs/api/workspaces.md): Send a pending invitation email again - [DELETE /api/v1/workspaces/{slug}/invitations/{invitationId}](https://projectfeed.app/docs/api/workspaces.md): Cancel a pending invitation - [GET /api/v1/workspaces/{slug}](https://projectfeed.app/docs/api/workspaces.md): Read a workspace's settings, plan, usage, and your role in it - [PATCH /api/v1/workspaces/{slug}](https://projectfeed.app/docs/api/workspaces.md): Change the workspace name, description, website, brand color, or feature switches - [GET /api/v1/workspaces/{slug}/admin-controls](https://projectfeed.app/docs/api/workspaces.md): Read the workspace's admin controls - [PATCH /api/v1/workspaces/{slug}/admin-controls](https://projectfeed.app/docs/api/workspaces.md): Change admin controls - [GET /api/v1/workspaces/{slug}/security](https://projectfeed.app/docs/api/workspaces.md): Read the workspace's security settings - [GET /api/v1/domains](https://projectfeed.app/docs/api/domains.md): List the workspace's domains - [POST /api/v1/domains](https://projectfeed.app/docs/api/domains.md): Add a domain and get the DNS record to publish - [DELETE /api/v1/domains/{domainId}](https://projectfeed.app/docs/api/domains.md): Remove a domain from the workspace - [GET /api/v1/api-keys](https://projectfeed.app/docs/api/service-accounts.md): List the workspace's active API keys - [DELETE /api/v1/api-keys/{keyId}](https://projectfeed.app/docs/api/service-accounts.md): Revoke a workspace API key at once - [DELETE /api/v1/auth/token](https://projectfeed.app/docs/api/authentication.md): Revoke the workspace API key or personal API token that made this request - [GET /api/v1/activity](https://projectfeed.app/docs/api/activity.md): List the workspace activity feed, newest first - [GET /api/v1/me/activity](https://projectfeed.app/docs/api/activity.md): List the same feed limited to what you did - [GET /api/v1/chat/threads](https://projectfeed.app/docs/api/chat.md): List discussions across every room you can open, most recent activity first - [GET /api/v1/chat/search](https://projectfeed.app/docs/api/chat.md): Search the messages in rooms you can open - [GET /api/v1/chat/rooms/{roomId}/threads/{threadId}/attachments](https://projectfeed.app/docs/api/chat.md): List the files shared in a discussion, newest first - [POST /api/v1/chat/rooms/{roomId}/threads/{threadId}/read](https://projectfeed.app/docs/api/chat.md): Mark a discussion read for you and clear its unread notifications - [PATCH /api/v1/chat/agents/{agentId}](https://projectfeed.app/docs/api/chat.md): Change a chat agent - [GET /api/v1/docs/recent](https://projectfeed.app/docs/api/docs.md): List recently edited docs, newest edit first - [GET /api/v1/docs/watching](https://projectfeed.app/docs/api/docs.md): List the docs you watch, newest edit first - [GET /api/v1/docs/awaiting-me](https://projectfeed.app/docs/api/docs.md): List docs that have unresolved comments assigned to you - [GET /api/v1/docs/tree](https://projectfeed.app/docs/api/docs.md): Read a space's docs as a nested tree - [GET /api/v1/docs/templates](https://projectfeed.app/docs/api/docs.md): List the built-in and custom doc templates - [POST /api/v1/docs/templates](https://projectfeed.app/docs/api/docs.md): Create a custom template - [GET /api/v1/docs/templates/{templateId}](https://projectfeed.app/docs/api/docs.md): Get one template with its content as Plate JSON blocks - [DELETE /api/v1/docs/templates/{templateId}](https://projectfeed.app/docs/api/docs.md): Delete a custom template - [GET /api/v1/docs/{id}/versions/{version}](https://projectfeed.app/docs/api/docs.md): Get one saved version of a doc with its content - [GET /api/v1/docs/{id}/children](https://projectfeed.app/docs/api/docs.md): List a doc's direct subpages that you can see - [GET /api/v1/docs/{id}/backlinks](https://projectfeed.app/docs/api/docs.md): List the docs, posts, and tasks that link to a doc - [GET /api/v1/docs/{id}/shares](https://projectfeed.app/docs/api/docs.md): List who a doc is shared with - [PUT /api/v1/docs/{id}/shares/{userId}](https://projectfeed.app/docs/api/docs.md): Share a doc with a workspace member, or change their role - [DELETE /api/v1/docs/{id}/shares/{userId}](https://projectfeed.app/docs/api/docs.md): Stop sharing a doc with someone - [GET /api/v1/canvases/{id}/frames/{frameId}](https://projectfeed.app/docs/api/canvases.md): Get a frame's bounds and the IDs of the items inside it - [GET /api/v1/canvases/{id}/linked](https://projectfeed.app/docs/api/canvases.md): List the task and post cards on a canvas with their current details - [POST /api/v1/canvases/{id}/connectors](https://projectfeed.app/docs/api/canvases.md): Connect two items - [PATCH /api/v1/canvases/{id}/connectors/{connectorId}](https://projectfeed.app/docs/api/canvases.md): Change a connector's style or move one of its ends - [DELETE /api/v1/canvases/{id}/connectors/{connectorId}](https://projectfeed.app/docs/api/canvases.md): Delete a connector - [GET /api/v1/me/feed-preferences](https://projectfeed.app/docs/api/me.md): Read which activity appears in the owner's feed in this workspace - [PATCH /api/v1/me/feed-preferences](https://projectfeed.app/docs/api/me.md): Show or hide kinds of activity in the owner's feed in this workspace - [DELETE /api/v1/me/avatar](https://projectfeed.app/docs/api/me.md): Remove the owner's profile photo - [GET /api/v1/notifications/summary](https://projectfeed.app/docs/api/notifications.md): Count the key owner's unread notifications in this workspace by type - [GET /api/v1/notifications/projects](https://projectfeed.app/docs/api/notifications.md): List the projects the key owner watches or mutes - [GET /api/v1/audit-logs/stats](https://projectfeed.app/docs/api/audit-logs.md): Count audit events for a range by category, status, and retention - [GET /api/v1/audit-logs/verify](https://projectfeed.app/docs/api/audit-logs.md): Check the audit log hash chain for edited or missing records - [GET /api/v1/reports/delivery](https://projectfeed.app/docs/api/reports.md): Get delivery report - [GET /api/v1/reports/time](https://projectfeed.app/docs/api/reports.md): Tracked time over a range, by day, project, member, and source - [GET /api/v1/reports/review](https://projectfeed.app/docs/api/reports.md): Get review report - [GET /api/v1/reports/agents](https://projectfeed.app/docs/api/reports.md): Get agent report - [GET /api/v1/reports/attention](https://projectfeed.app/docs/api/reports.md): Get attention report - [GET /api/v1/me/stats](https://projectfeed.app/docs/api/reports.md): Get my stats - [GET /api/v1/projects/{id}/analytics](https://projectfeed.app/docs/api/reports.md): Task mix, completions, and tasks created and completed over time for one project - [GET /api/v1/projects/{id}/activity-heatmap](https://projectfeed.app/docs/api/reports.md): Get project activity heatmap - [GET /api/v1/exports](https://projectfeed.app/docs/api/exports.md): List the workspace's latest 10 data exports, newest first - [POST /api/v1/exports](https://projectfeed.app/docs/api/exports.md): Start a complete workspace export - [GET /api/v1/exports/{id}](https://projectfeed.app/docs/api/exports.md): Get one export - [DELETE /api/v1/exports/{id}](https://projectfeed.app/docs/api/exports.md): Revoke an export so its archive can no longer be downloaded - [GET /api/v1/integrations](https://projectfeed.app/docs/api/integrations.md): List the workspace's Slack and Discord connections, up to 25 for each platform - [GET /api/v1/integrations/events](https://projectfeed.app/docs/api/integrations.md): List recent integration events, newest first - [GET /api/v1/integrations/{connectionId}](https://projectfeed.app/docs/api/integrations.md): Get one connection with its scopes and token health - [GET /api/v1/integrations/{connectionId}/mappings](https://projectfeed.app/docs/api/integrations.md): List the channel mappings of a connection - [POST /api/v1/integrations/{connectionId}/mappings](https://projectfeed.app/docs/api/integrations.md): Map a channel to a project - [PATCH /api/v1/integrations/{connectionId}/mappings/{mappingId}](https://projectfeed.app/docs/api/integrations.md): Change a mapping - [DELETE /api/v1/integrations/{connectionId}/mappings/{mappingId}](https://projectfeed.app/docs/api/integrations.md): Remove a mapping and its digest settings - [POST /api/mcp](https://projectfeed.app/docs/agents/mcp.md): Send a JSON-RPC message to the MCP server - [DELETE /api/mcp](https://projectfeed.app/docs/agents/mcp.md): End an MCP session - [POST /api/mcp/w/{slug}](https://projectfeed.app/docs/agents/mcp.md): Send a JSON-RPC message to the MCP server for one workspace