Skip to content
Dashboard

List all posts

GET/v2/posts

Returns all posts (feedback submissions) for the authenticated organization.

Posts are user-submitted feedback items. Each post belongs to a board and can have:

  • Status (in progress, complete, etc.)
  • Tags for categorization
  • Upvotes from users
  • Comments (if enabled)
  • Custom field values

Pagination

This endpoint uses cursor-based pagination:

  • limit - Number of posts to return (1-100, default 10)
  • cursor - Opaque cursor from a previous response’s nextCursor field

Example: To paginate through results:

  1. First request: GET /v2/posts?limit=10
  2. If nextCursor is not null, use it for the next page
  3. Next request: GET /v2/posts?limit=10&cursor={nextCursor}

Response Format

Returns a list object with:

  • object - Always “list”
  • data - Array of post objects
  • nextCursor - Cursor for the next page (null if no more results)

Filtering

Filter posts using query parameters:

  • boardId - Filter by board (category) ID
  • statusId - Filter by status ID
  • tags - Filter by tag names (can be comma-separated or repeated)
  • q - Search query for title/content
  • inReview - Include posts pending moderation

Sorting

Use sortBy to sort results:

  • createdAt - Sort by creation date (default)
  • upvotes - Sort by vote count
  • trending - Sort by trending score
  • recent - Sort by most recently updated
Query ParametersExpand Collapse
boardId: optional string or array of string

Filter by board (category) ID(s)

One of the following:
string
array of string
cursor: optional string

An opaque cursor for pagination. Use the nextCursor value from a previous response to fetch the next page of results.

maxLength512
inReview: optional boolean

Include posts that are in review

limit: optional number

A limit on the number of posts to be returned, between 1 and 100.

minimum1
maximum100
q: optional string

Search query to filter posts by title/content

maxLength255
sortBy: optional "createdAt" or "upvotes" or "trending" or "recent"

Sort order for posts

One of the following:
"createdAt"
"upvotes"
"trending"
"recent"
sortOrder: optional "asc" or "desc"

Sort direction

One of the following:
"asc"
"desc"
statusId: optional string or array of string

Filter by status ID(s)

One of the following:
string
array of string
tags: optional string or array of string

Filter by tag names

One of the following:
string
array of string
Header ParametersExpand Collapse
"Featurebase-Version": optional "2026-01-01.nova" or "2025-12-12.clover"
One of the following:
"2026-01-01.nova"
"2025-12-12.clover"
ReturnsExpand Collapse
data: array of Post { id, access, assigneeId, 20 more }

Array of posts

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

nextCursor: string

Cursor for fetching the next page (cursor-based pagination)

maxLength512
object: "list"

Object type identifier

List all posts

curl https://do.featurebase.app/v2/posts \
    -H "Authorization: Bearer $FEATUREBASE_API_KEY"
{
  "data": [
    {
      "id": "507f1f77bcf86cd799439011",
      "access": {
        "companyExternalIds": [
          "string"
        ],
        "userIds": [
          "string"
        ]
      },
      "assigneeId": "507f1f77bcf86cd799439013",
      "author": {
        "id": "507f1f77bcf86cd799439011",
        "email": "john@example.com",
        "name": "John Doe",
        "profilePicture": "https://cdn.example.com/avatars/john.png",
        "type": "customer"
      },
      "boardId": "507f1f77bcf86cd799439011",
      "commentCount": 5,
      "content": "<p>It would be great to have a dark mode option for the dashboard.</p>",
      "createdAt": "2023-12-12T00:00:00.000Z",
      "customFields": {
        "cf_priority": "bar",
        "cf_effort": "bar"
      },
      "eta": "2025-01-01T00:00:00.000Z",
      "features": {
        "commentsEnabled": true
      },
      "inReview": false,
      "integrations": {
        "clickup": [
          {
            "id": "86a1b2c3d",
            "title": "Add dark mode support",
            "url": "https://app.clickup.com/t/86a1b2c3d"
          }
        ],
        "devops": [
          {
            "id": 1234,
            "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "projectName": "My Project",
            "title": "Add dark mode support",
            "url": "https://dev.azure.com/org/project/_workitems/edit/1234"
          }
        ],
        "github": [
          {
            "id": "1234567890",
            "number": "42",
            "repositoryFullName": "acme/backend",
            "repositoryName": "backend",
            "title": "Add dark mode support",
            "url": "https://github.com/acme/backend/issues/42"
          }
        ],
        "hubspot": [
          {
            "dealAmount": 5000,
            "dealClosed": false,
            "objectId": 123456789,
            "type": "TICKET"
          }
        ],
        "jira": [
          {
            "issueId": "10042",
            "issueUrl": "https://myteam.atlassian.net/browse/PROJ-123"
          }
        ],
        "linear": [
          {
            "issueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "issueUrl": "https://linear.app/team/issue/ENG-123"
          }
        ],
        "salesforce": [
          {
            "amount": 25000,
            "isClosed": false,
            "objectId": "006Dn00000Abcdef",
            "objectType": "Opportunity"
          }
        ]
      },
      "isPinned": false,
      "object": "post",
      "opportunityAmount": 30000,
      "postUrl": "https://feedback.example.com/p/add-dark-mode-support",
      "slug": "add-dark-mode-support",
      "status": {
        "id": "507f1f77bcf86cd799439011",
        "color": "Blue",
        "isDefault": false,
        "name": "In Progress",
        "object": "post_status",
        "type": "active"
      },
      "tags": [
        {
          "id": "507f1f77bcf86cd799439011",
          "color": "#FF5722",
          "name": "bug"
        }
      ],
      "title": "Add dark mode support",
      "updatedAt": "2023-12-13T00:00:00.000Z",
      "upvotes": 42
    }
  ],
  "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9",
  "object": "list",
  "pagination": {
    "limit": 10,
    "page": 1,
    "total": 42,
    "totalPages": 5
  }
}
Returns Examples
{
  "data": [
    {
      "id": "507f1f77bcf86cd799439011",
      "access": {
        "companyExternalIds": [
          "string"
        ],
        "userIds": [
          "string"
        ]
      },
      "assigneeId": "507f1f77bcf86cd799439013",
      "author": {
        "id": "507f1f77bcf86cd799439011",
        "email": "john@example.com",
        "name": "John Doe",
        "profilePicture": "https://cdn.example.com/avatars/john.png",
        "type": "customer"
      },
      "boardId": "507f1f77bcf86cd799439011",
      "commentCount": 5,
      "content": "<p>It would be great to have a dark mode option for the dashboard.</p>",
      "createdAt": "2023-12-12T00:00:00.000Z",
      "customFields": {
        "cf_priority": "bar",
        "cf_effort": "bar"
      },
      "eta": "2025-01-01T00:00:00.000Z",
      "features": {
        "commentsEnabled": true
      },
      "inReview": false,
      "integrations": {
        "clickup": [
          {
            "id": "86a1b2c3d",
            "title": "Add dark mode support",
            "url": "https://app.clickup.com/t/86a1b2c3d"
          }
        ],
        "devops": [
          {
            "id": 1234,
            "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "projectName": "My Project",
            "title": "Add dark mode support",
            "url": "https://dev.azure.com/org/project/_workitems/edit/1234"
          }
        ],
        "github": [
          {
            "id": "1234567890",
            "number": "42",
            "repositoryFullName": "acme/backend",
            "repositoryName": "backend",
            "title": "Add dark mode support",
            "url": "https://github.com/acme/backend/issues/42"
          }
        ],
        "hubspot": [
          {
            "dealAmount": 5000,
            "dealClosed": false,
            "objectId": 123456789,
            "type": "TICKET"
          }
        ],
        "jira": [
          {
            "issueId": "10042",
            "issueUrl": "https://myteam.atlassian.net/browse/PROJ-123"
          }
        ],
        "linear": [
          {
            "issueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "issueUrl": "https://linear.app/team/issue/ENG-123"
          }
        ],
        "salesforce": [
          {
            "amount": 25000,
            "isClosed": false,
            "objectId": "006Dn00000Abcdef",
            "objectType": "Opportunity"
          }
        ]
      },
      "isPinned": false,
      "object": "post",
      "opportunityAmount": 30000,
      "postUrl": "https://feedback.example.com/p/add-dark-mode-support",
      "slug": "add-dark-mode-support",
      "status": {
        "id": "507f1f77bcf86cd799439011",
        "color": "Blue",
        "isDefault": false,
        "name": "In Progress",
        "object": "post_status",
        "type": "active"
      },
      "tags": [
        {
          "id": "507f1f77bcf86cd799439011",
          "color": "#FF5722",
          "name": "bug"
        }
      ],
      "title": "Add dark mode support",
      "updatedAt": "2023-12-13T00:00:00.000Z",
      "upvotes": 42
    }
  ],
  "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9",
  "object": "list",
  "pagination": {
    "limit": 10,
    "page": 1,
    "total": 42,
    "totalPages": 5
  }
}