Platform
List roadmap
List public product roadmap items, optionally filtered by status.
GET /tmr/roadmap
Returns the public product roadmap as an array of items, ordered by upvotes (highest first), then by creation date (newest first). The hasUpvoted flag reflects whether the authenticated user has upvoted each item.
Authentication: Bearer token · Permission:
platform:read · Rate limit: default (120 / 60s)Query parameters
status
string
Filter by status. One of
open, planned, in_progress, done, or all. Defaults to all (no filtering).Request
curl "https://api.twominutereports.com/v1/tmr/roadmap?status=in_progress" \
-H "Authorization: Bearer tmrc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Response
{
"success": true,
"data": [
{
"id": "0190f8a1-2b3c-7d4e-8f90-1a2b3c4d5e6f",
"title": "Slack delivery for scheduled reports",
"description": "Send report snapshots straight to a Slack channel.",
"category": {
"id": "0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
"name": "Integrations",
"hexColor": "#4A90D9",
"icon": "i-lucide-slack"
},
"status": "in_progress",
"upvotes": 128,
"hasUpvoted": true,
"commentCount": 14,
"createdBy": {
"id": "0190f8c1-2b3c-7d4e-8f90-1a2b3c4d5e6f",
"name": "Priya Raman",
"avatarUrl": null
},
"updatedBy": null,
"createdAt": "2026-02-10T08:15:00.000Z",
"completedAt": null
}
]
}
Returned when status is not one of the allowed values.
{
"success": false,
"error": { "code": "BAD_REQUEST", "message": "status: Invalid enum value" }
}
{
"success": false,
"error": { "code": "UNAUTHORIZED", "message": "Authentication required" }
}
The roadmap item object
id
string
Roadmap item identifier.
title
string
Short title of the item.
description
string | null
Longer description, or
null if none.category
object | null
The item's category, or
null if uncategorized. Contains id, name, hexColor, and icon (string | null).status
string
Current status. One of
open, planned, in_progress, done.upvotes
number
Total number of upvotes.
hasUpvoted
boolean
Whether the authenticated user has upvoted this item.
commentCount
number
Number of comments on the item.
createdBy
object | null
The user who submitted the item, or
null if unknown. Readable outside the owning team, so the object carries id, name and avatarUrl — neveremail.updatedBy
object | null
The user who last edited it, or
null if it has not been edited since. Readable outside the owning team, so id, name and avatarUrl only — never email.createdAt
string
When the item was created.
completedAt
string | null
When the item was completed, or
null if not completed.