Feature Requests
Create, list, update, and delete feature requests through the API.
Endpoints
GET
List feature requests across the org's portals/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 feature requests across all portals in the organization./requestsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by status: open, under_review, planned, in_progress, completed, declined |
search | string | Substring match against title and description |
since | string (ISO 8601) | Only return requests created on or after this timestamp |
sort | string | One of newest (default), oldest, votes |
limit | integer | Number of results per page (default 20, 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",
"voteCount": 42,
"categoryId": null,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z"
}
],
"meta": {
"total": 1,
"limit": 10,
"offset": 0
}
}Create a Feature Request
POST
Creates a new feature request. Initial vote count is 1 (the submitter)./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 (default), under_review, planned, in_progress, completed, declined |
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 (201 Created)
{
"data": {
"id": "req_abc123",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "open",
"voteCount": 1,
"categoryId": null,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z"
}
}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
{
"data": {
"id": "req_abc123",
"portalId": "ptl_xyz789",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "open",
"statusNote": null,
"voteCount": 42,
"categoryId": null,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-15T10:30:00.000Z"
}
}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 (must be non-empty) |
description | string | New description |
status | string | One of 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 |
voteCount | integer | Override the vote count (≥ 0). Useful for migrations. |
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
{
"data": {
"id": "req_abc123",
"portalId": "ptl_xyz789",
"title": "Dark mode support",
"description": "Add a dark mode toggle to the dashboard.",
"status": "planned",
"statusNote": null,
"voteCount": 42,
"categoryId": null,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-03-21T14:00:00.000Z"
}
}Delete a Feature Request
DELETE
Permanently delete a feature request. Returns 204 No Content on success./requests/:idExample request
curl -X DELETE https://planetroadmap.com/api/v1/your-org/requests/req_abc123 \
-H "Authorization: Bearer pk_live_your_api_key"On success, the response is 204 No Content with an empty body.