Feature Requests

Create, list, update, and delete feature requests through the API.

Endpoints

GET/requests
List all feature requests
POST/requests
Create a feature request
GET/requests/:id
Get a single feature request
PATCH/requests/:id
Update a feature request
DELETE/requests/:id
Delete a feature request

List Feature Requests

GET/requests
Returns a paginated list of feature requests.

Query Parameters

ParameterTypeDescription
statusstringFilter by status: open, under_review, planned, in_progress, complete, closed
sortstringSort by: created_at, votes, updated_at. Prefix with - for descending.
limitintegerNumber of results per page (default 25, max 100)
offsetintegerNumber 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/requests
Creates a new feature request.

Request Body

FieldTypeRequiredDescription
titlestringYesTitle of the feature request
descriptionstringNoDetailed description of the request
portalSlugstringNoTarget portal slug. Defaults to the organization's first portal if omitted.
statusstringNoInitial status: open, under_review, planned, in_progress, completed, declined. Defaults to open.
categoryIdstringNoID 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/requests/:id
Retrieve a single feature request by ID.
Example 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/requests/:id
Update a feature request's fields, status, or move it to a different portal.

Request Body

FieldTypeDescription
titlestringNew title
descriptionstringNew description
statusstringopen, under_review, planned, in_progress, completed, declined
statusNotestringNote explaining the status change (visible to voters)
categoryIdstringID of a portal category
portalSlugstringMove 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/requests/:id
Permanently delete a feature request.
Example 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
}