Feature Requests
Create, list, update, and delete feature requests through the API.
Endpoints
GET
List all feature requests/requestsPOST
Create a feature request/requestsGET
Get a single feature request/requests/:idPATCH
Update a feature request/requests/:idDELETE
Delete a feature request/requests/:idList Feature Requests
GET
Returns a paginated list of feature requests./requestsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: open, under_review, planned, in_progress, complete, closed |
sort | string | Sort by: created_at, votes, updated_at. Prefix with - for descending. |
limit | integer | Number of results per page (default 25, max 100) |
offset | integer | Number of results to skip (default 0) |
Example request
curl "https://planetroadmap.com/api/v1/your-org/requests?status=open&sort=-votes&limit=10" \
-H "Authorization: Bearer pk_live_your_api_key"Example response
{
"data": [
{
"id": "req_abc123",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "open",
"votes": 42,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
],
"total": 1,
"limit": 10,
"offset": 0
}Create a Feature Request
POST
Creates a new feature request./requestsRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Title of the feature request |
description | string | No | Detailed description of the request |
portalSlug | string | No | Target portal slug. Defaults to the organization's first portal if omitted. |
status | string | No | Initial status: open, under_review, planned, in_progress, completed, declined. Defaults to open. |
categoryId | string | No | ID of a portal category to assign the request to |
Example request
curl -X POST https://planetroadmap.com/api/v1/your-org/requests \
-H "Authorization: Bearer pk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard."
}'Example response
{
"id": "req_abc123",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "open",
"votes": 0,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}Get a Feature Request
GET
Retrieve a single feature request by ID./requests/:idExample request
curl https://planetroadmap.com/api/v1/your-org/requests/req_abc123 \
-H "Authorization: Bearer pk_live_your_api_key"Example response
{
"id": "req_abc123",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "open",
"votes": 42,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}Update a Feature Request
PATCH
Update a feature request's fields, status, or move it to a different portal./requests/:idRequest Body
| Field | Type | Description |
|---|---|---|
title | string | New title |
description | string | New description |
status | string | open, under_review, planned, in_progress, completed, declined |
statusNote | string | Note explaining the status change (visible to voters) |
categoryId | string | ID of a portal category |
portalSlug | string | Move the request to a different portal by slug. Clears the category assignment. |
Example request
curl -X PATCH https://planetroadmap.com/api/v1/your-org/requests/req_abc123 \
-H "Authorization: Bearer pk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"status": "planned"
}'Example response
{
"id": "req_abc123",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "planned",
"votes": 42,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-03-21T14:00:00Z"
}Delete a Feature Request
DELETE
Permanently delete a feature request./requests/:idExample request
curl -X DELETE https://planetroadmap.com/api/v1/your-org/requests/req_abc123 \
-H "Authorization: Bearer pk_live_your_api_key"Example response
{
"id": "req_abc123",
"deleted": true
}