Skip to content

Feature Requests

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

Endpoints

GET/requests
List feature requests across the org's portals
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 feature requests across all portals in the organization.

Query Parameters

ParameterTypeDescription
statusstringFilter by status: open, under_review, planned, in_progress, completed, declined
searchstringSubstring match against title and description
sincestring (ISO 8601)Only return requests created on or after this timestamp
sortstringOne of newest (default), oldest, votes
limitintegerNumber of results per page (default 20, 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",
      "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/requests
Creates a new feature request. Initial vote count is 1 (the submitter).

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 (default), under_review, planned, in_progress, completed, declined
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 (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/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
{
  "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/requests/:id
Update a feature request's fields, status, or move it to a different portal.

Request Body

FieldTypeDescription
titlestringNew title (must be non-empty)
descriptionstringNew description
statusstringOne of open, under_review, planned, in_progress, completed, declined
statusNotestringNote explaining the status change (visible to voters)
categoryIdstringID of a portal category
voteCountintegerOverride the vote count (≥ 0). Useful for migrations.
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
{
  "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/requests/:id
Permanently delete a feature request. Returns 204 No Content on success.
Example 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.