Public REST API
The FeedbackJar REST API lets you read and write everything in your workspace programmatically — feedback posts, boards, tags, and comments. Use it to build integrations, automate workflows, or power the MCP server.
Try endpoints live in the API Playground — paste an API token and send requests from your browser.
Authentication
All requests require an API token passed as a Bearer token.
Workspace token (tied to one workspace):
Authorization: Bearer fj_live_... Account token (works across all your workspaces — requires X-Organization-Id):
Authorization: Bearer fj_user_...
X-Organization-Id: <organizationId> See the API Tokens guide for how to create both types.
Base URL
https://api.feedbackjar.com/api/v1 Posts
List posts
GET /api/v1/posts Query parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: OPEN, IN_PROGRESS, COMPLETED, CLOSED |
type | string | Filter by type: BUG, FEATURE_REQUEST, FEEDBACK, QUESTION, IDEA, REVIEW |
boardId | string | Filter to a specific board |
limit | number | Results per page (1–100, default 20) |
cursor | string | Pagination cursor from previous response |
curl "https://api.feedbackjar.com/api/v1/posts?status=OPEN&type=BUG&limit=10" \
-H "Authorization: Bearer fj_live_..." Response
{
"items": [
{
"id": "cm1abc123",
"title": "Widget crashes on Safari",
"content": "...",
"type": "BUG",
"status": "OPEN",
"voteCount": 14,
"metadata": { "browser": { "name": "Safari" }, "page": { "url": "..." } },
"createdAt": "2026-07-01T10:00:00Z",
"boardId": "cm1board1",
"board": { "name": "Bugs", "slug": "bugs" },
"tags": []
}
],
"nextCursor": "cm1abc456"
} Get a post
GET /api/v1/posts/:id Returns the full post including widget metadata, comment count, and vote count.
curl https://api.feedbackjar.com/api/v1/posts/cm1abc123 \
-H "Authorization: Bearer fj_live_..." Create a post
POST /api/v1/posts | Field | Required | Description |
|---|---|---|
boardId | ✓ | Board to create the post in |
title | ✓ | Post title |
content | ✓ | Post body |
type | FEATURE_REQUEST (default), BUG, FEEDBACK, QUESTION, IDEA, REVIEW | |
visibility | PUBLIC (default), UNLISTED, PRIVATE | |
authorName | Display name for the author | |
authorEmail | Author email |
curl -X POST https://api.feedbackjar.com/api/v1/posts \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"boardId": "cm1board1", "title": "Dark mode", "content": "Please add dark mode.", "type": "FEATURE_REQUEST"}' Update a post
PATCH /api/v1/posts/:id All fields are optional.
curl -X PATCH https://api.feedbackjar.com/api/v1/posts/cm1abc123 \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"status": "IN_PROGRESS", "type": "BUG"}' Update post status
PATCH /api/v1/posts/:id/status Shorthand for updating only the status field.
curl -X PATCH https://api.feedbackjar.com/api/v1/posts/cm1abc123/status \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"status": "COMPLETED"}' Valid statuses: OPEN · IN_PROGRESS · COMPLETED · CLOSED
Delete a post
DELETE /api/v1/posts/:id curl -X DELETE https://api.feedbackjar.com/api/v1/posts/cm1abc123 \
-H "Authorization: Bearer fj_live_..." Comments
List comments
GET /api/v1/posts/:id/comments Returns top-level comments with nested replies.
curl https://api.feedbackjar.com/api/v1/posts/cm1abc123/comments \
-H "Authorization: Bearer fj_live_..." Add a comment
POST /api/v1/posts/:id/comments curl -X POST https://api.feedbackjar.com/api/v1/posts/cm1abc123/comments \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"content": "Fixed in v2.3.1 — thanks for the report!"}' Update a comment
PATCH /api/v1/comments/:id Delete a comment
DELETE /api/v1/comments/:id Boards
List boards
GET /api/v1/boards curl https://api.feedbackjar.com/api/v1/boards \
-H "Authorization: Bearer fj_live_..." Get a board
GET /api/v1/boards/:id Create a board
POST /api/v1/boards | Field | Required | Description |
|---|---|---|
name | ✓ | Board name |
slug | URL slug (auto-generated from name if omitted) | |
description | Optional description | |
isPrivate | false (default) | |
defaultPostVisibility | PUBLIC (default), UNLISTED, PRIVATE |
curl -X POST https://api.feedbackjar.com/api/v1/boards \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "Feature Requests"}' Update a board
PATCH /api/v1/boards/:id Delete a board
DELETE /api/v1/boards/:id Tags
List tags
GET /api/v1/tags Create a tag
POST /api/v1/tags curl -X POST https://api.feedbackjar.com/api/v1/tags \
-H "Authorization: Bearer fj_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "mobile"}' Update a tag
PATCH /api/v1/tags/:id Delete a tag
DELETE /api/v1/tags/:id