Ideas
Ideas are feature requests, bug reports, or feedback items. These endpoints allow you to list, create, and update ideas within your company.
List ideas
GET /api/v1/ideas/
Retrieve a paginated list of ideas. By default, this excludes archived ideas.
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 20 | Results per page (max 100). |
offset | integer | No | 0 | Number of results to skip. |
board_id | integer | No | - | Filter by a specific board ID. |
is_archived | boolean | No | false | Set to true to include archived ideas. |
search | string | No | - | Search title and description. |
sort | string | No | -created | Sort order. Options: created, -created, votes, -votes. |
Example request
curl -sS \
-H 'Authorization: Api-Key scalar*live*...' \
'https://<your-host>/api/v1/ideas/?search=dark&sort=-votes'
Success response (200 OK)
{
"results": [
{
"id": 123,
"title": "Dark mode",
"description": "Please add a dark theme",
"status": {
"id": 2,
"name": "Planned",
"colour": "#8B5CF6"
},
"topics": [{ "id": 1, "name": "Feature request", "slug": "feature-request-abc" }],
"author": {
"id": 5,
"first_name": "Sam",
"last_name": "Singh",
"avatar": null
},
"vote_count": 10,
"comment_count": 3,
"is_pinned": false,
"is_private": false,
"is_bug": false,
"is_archived": false,
"approval_status": "APPROVED",
"priority_score": 12.5,
"slug": "dark-mode-xyz789",
"created": "2025-01-01T10:00:00Z",
"has_voted": false
}
],
"count": 1
}
Create an idea
POST /api/v1/ideas/
Create a new idea on a specific board.
Request body fields
| Field | Type | Required | Description |
|---|---|---|---|
board_id | integer | Yes | The ID of the board to post to. |
title | string | No | Title of the idea (max 255 chars). |
description | string | No | Detailed description. |
topics | array | No | List of topic IDs. |
status | integer | No | Idea state ID. Defaults to the first state in your workflow. |
is_private | boolean | No | Whether the idea is internal-only. Default: false. |
is_bug | boolean | No | Whether this is a bug report. Default: false. |
Example request
curl -sS \
-X POST \
-H 'Authorization: Api-Key scalar*live*...' \
-H 'Content-Type: application/json' \
-d '{
"board_id": 1,
"title": "Dark mode",
"description": "Please add a dark theme",
"topics": [1, 2]
}' \
'https://<your-host>/api/v1/ideas/'
Success response (201 Created)
Returns the created Idea detail object.
Retrieve an idea
GET /api/v1/ideas/<slug>/
Fetch details for a single idea by its slug. Returns the full Idea detail object.
Example request
curl -sS \
-H 'Authorization: Api-Key scalar*live*...' \
'https://<your-host>/api/v1/ideas/dark-mode-xyz789/'
Success response (200 OK)
Returns an Idea detail object.
Update an idea
PATCH /api/v1/ideas/<slug>/
Update specific fields of an existing idea.
Request body fields
| Field | Type | Description |
|---|---|---|
title | string | Updated title. |
description | string | Updated description. |
topics | array | Updated list of topic IDs. |
status | integer | Updated idea state ID. |
is_private | boolean | Update privacy flag. |
is_bug | boolean | Update bug flag. |
Example request
curl -sS \
-X PATCH \
-H 'Authorization: Api-Key scalar*live*...' \
-H 'Content-Type: application/json' \
-d '{ "status": 3, "is_bug": true }' \
'https://<your-host>/api/v1/ideas/dark-mode-xyz789/'
Success response (200 OK)
Returns the updated Idea detail object.
Objects
Idea list object
Returned in list responses.
| Field | Type | Description |
|---|---|---|
id | integer | Unique internal ID. |
title | string | The idea title. |
description | string | The idea description. |
status | object | Nested Status object. |
topics | array | List of Topic objects. |
author | object | Nested Author object. |
vote_count | integer | Total number of upvotes. |
comment_count | integer | Total number of comments. |
is_pinned | boolean | Whether the idea is pinned to the top. |
is_private | boolean | Whether the idea is internal-only. |
is_bug | boolean | Whether this is a bug report. |
is_archived | boolean | Whether the idea is archived. |
approval_status | string | Approval status: PENDING, APPROVED, or REJECTED. |
priority_score | float | Calculated RICE priority score. |
slug | string | URL-safe identifier. |
created | datetime | ISO 8601 creation timestamp. |
has_voted | boolean | Whether the authenticated user has voted on this idea. |
source | string | One of: web, api, slack, whatsapp. |
Idea detail object
Returned for single idea retrieve, create, and update responses. Includes all fields from the list object, plus:
| Field | Type | Description |
|---|---|---|
board | object | Nested object with id and title. |
show_on_roadmap | boolean | Whether this idea is visible on the roadmap. |
approved_by | object | Author object of the approver (if approved). |
approved_at | datetime | ISO 8601 approval timestamp (if approved). |
rejection_reason | string | Reason for rejection (if rejected). |
reach_score | integer | RICE reach score (0-10). |
impact_score | integer | RICE impact score (0-10). |
confidence_score | integer | RICE confidence score (0-10). |
effort_score | integer | RICE effort score (0-10). |
updated | datetime | ISO 8601 last update timestamp. |
merged_into | integer | ID of the idea this was merged into (if merged). |
Status object
| Field | Type | Description |
|---|---|---|
id | integer | Status ID. |
name | string | Status name. |
colour | string | Hex display colour. |
Topic object
| Field | Type | Description |
|---|---|---|
id | integer | Topic ID. |
name | string | Topic name. |
slug | string | URL-safe identifier. |
Author object
| Field | Type | Description |
|---|---|---|
id | integer | User ID. |
first_name | string | User's first name. |
last_name | string | User's last name. |
avatar | string | Avatar URL (may be null). |
Idea source values
| Value | Description |
|---|---|
web | Submitted via web app |
api | Submitted via API |
slack | Submitted via Slack |
whatsapp | Submitted via WhatsApp |
