Skip to content
Dashboard

Posts

User-submitted feedback and feature requests. Posts belong to boards and can be upvoted, commented on, and tracked through statuses.

List all posts
GET/v2/posts
Create a new post
POST/v2/posts
Get a post by ID
GET/v2/posts/{id}
Update a post
PATCH/v2/posts/{id}
Delete a post
DELETE/v2/posts/{id}
ModelsExpand Collapse
Post object { id, access, assigneeId, 20 more }
id: string

Unique identifier

access: object { companyExternalIds, userIds }
companyExternalIds: array of string

External company IDs explicitly granted access to this post. Empty array means no company-level restrictions. Non-empty means only users belonging to these companies can see the post.

userIds: array of string

User IDs explicitly granted access to this post. Empty array means no user-level restrictions (post uses board/org visibility). Non-empty means only these users (plus admins) can see the post.

assigneeId: string

ID of the admin assigned to this post, null if unassigned

author: object { id, email, name, 2 more }
id: string

Author unique identifier

email: string

Author email (if available)

name: string

Author display name

profilePicture: string

Author profile picture URL

type: "admin" or "customer" or "guest" or 3 more

Type of user who authored the post

One of the following:
"admin"
"customer"
"guest"
"integration"
"bot"
"lead"
boardId: string

Board (category) ID this post belongs to

commentCount: number

Total number of comments

content: string

Post content in HTML format

createdAt: string

ISO 8601 timestamp when created

customFields: map[unknown]

Custom field values keyed by field ID

eta: string

Estimated completion time as ISO 8601 timestamp, null if not set

features: object { commentsEnabled }
commentsEnabled: boolean

Whether comments are allowed on this post

inReview: boolean

Whether the post is pending moderation review

integrations: object { clickup, devops, github, 4 more }

Third-party integration links associated with this post

clickup: array of object { id, title, url }
id: string

ClickUp task ID

title: string

ClickUp task title

url: string

URL to the ClickUp task

devops: array of object { id, projectId, projectName, 2 more }
id: number

Azure DevOps work item ID

projectId: string

Azure DevOps project ID

projectName: string

Azure DevOps project name

title: string

Work item title

url: string

URL to the work item

github: array of object { id, number, repositoryFullName, 3 more }
id: string

GitHub issue ID

number: string

GitHub issue number

repositoryFullName: string

Full repository name (owner/repo)

repositoryName: string

Repository name

title: string

GitHub issue title

url: string

URL to the GitHub issue

hubspot: array of object { dealAmount, dealClosed, objectId, type }
dealAmount: number

Deal amount (for DEAL type)

dealClosed: boolean

Whether the deal is closed (for DEAL type)

objectId: number

HubSpot object ID

type: "TICKET" or "DEAL" or "CONTACT"

HubSpot object type

One of the following:
"TICKET"
"DEAL"
"CONTACT"
jira: array of object { issueId, issueUrl }
issueId: string

Jira issue ID

issueUrl: string

URL to the Jira issue

linear: array of object { issueId, issueUrl }
issueId: string

Linear issue ID

issueUrl: string

URL to the Linear issue

salesforce: array of object { amount, isClosed, objectId, objectType }
amount: number

Opportunity amount (for Opportunity type)

isClosed: boolean

Whether the opportunity is closed (for Opportunity type)

objectId: string

Salesforce record ID

objectType: "Opportunity" or "Case"

Salesforce object type

One of the following:
"Opportunity"
"Case"
isPinned: boolean

Whether the post is pinned to the top

object: "post"

Object type identifier

opportunityAmount: number

Total opportunity amount from linked HubSpot deals and Salesforce opportunities

postUrl: string

Full URL to view the post

slug: string

URL-friendly slug

status: PostStatus { id, color, isDefault, 3 more }
id: string

Unique identifier

color: string

Color for UI display

isDefault: boolean

Whether this is the default status for new posts

name: string

Display name

object: "post_status"

Object type identifier

type: "reviewing" or "unstarted" or "active" or 2 more

The workflow stage this status represents

One of the following:
"reviewing"
"unstarted"
"active"
"completed"
"canceled"
tags: array of object { id, color, name }

Tags attached to this post

id: string

Tag unique identifier

color: string

Tag color hex code

name: string

Tag name

title: string

Post title

updatedAt: string

ISO 8601 timestamp when last modified

upvotes: number

Total number of upvotes

PostDeleteResponse object { id, deleted, object }
id: string

Unique identifier of the deleted post

deleted: true

Indicates the resource was deleted

object: "post"

Object type identifier

PostsVoters

User-submitted feedback and feature requests. Posts belong to boards and can be upvoted, commented on, and tracked through statuses.

List voters on a post
GET/v2/posts/{id}/voters
Add a voter to a post
POST/v2/posts/{id}/voters
Remove a voter from a post
DELETE/v2/posts/{id}/voters
ModelsExpand Collapse
VoterListResponse object { id, name, object, 16 more }
id: string

Unique identifier

name: string

User display name

object: "contact"

Object type identifier

type: "admin" or "customer" or "guest" or 3 more

Type of user

One of the following:
"admin"
"customer"
"guest"
"integration"
"bot"
"lead"
commentsCreated: optional number

Number of comments created

companies: optional array of Company { id, companyId, companySize, 11 more }

Companies the user belongs to

id: string

Featurebase internal ID

companyId: string

External company ID from your system

companySize: number

Company employee headcount

createdAt: string

ISO date when company was created

industry: string

Industry

lastActivity: string

ISO date of last activity

linkedUsers: number

Number of users linked to this company

monthlySpend: number

Monthly spend

name: string

Company name

object: "company"

Object type identifier

plan: string

Plan or tier name

updatedAt: string

ISO date when company was last updated

website: string

Company website URL

customFields: optional map[unknown]

Custom field values

customFields: optional map[unknown]

Custom field values on the user

description: optional string

User description/bio

email: optional string

User email

lastActivity: optional string

Last activity ISO timestamp

locale: optional string

User locale

manuallyOptedOutFromChangelog: optional boolean

Whether manually opted out from changelog

organizationId: optional string

Organization ID the user belongs to

postsCreated: optional number

Number of posts created

profilePicture: optional string

Profile picture URL

roles: optional array of string

User roles

subscribedToChangelog: optional boolean

Whether subscribed to changelog

userId: optional string

External user ID from SSO

verified: optional boolean

Whether email is verified

VoterAddResponse object { id, added, object, postId }
id: string

Voter unique identifier

added: true

Indicates the voter was added

object: "voter"

Object type identifier

postId: string

Post ID the voter was added to

VoterRemoveResponse object { id, object, postId, removed }
id: string

Voter unique identifier

object: "voter"

Object type identifier

postId: string

Post ID the voter was removed from

removed: true

Indicates the voter was removed