curl --location --request POST 'https://api.userorbit.com/v1/public/topics.list' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"sort": "createdAt",
"direction": "DESC"
}'
const response = await fetch('https://api.userorbit.com/v1/public/topics.list', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
roadmapId: 'roadmap-uuid-123',
stageId: 'stage-uuid-456',
sort: 'createdAt',
direction: 'DESC'
})
});
const { data: topics, pagination } = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/topics.list',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'roadmapId': 'roadmap-uuid-123',
'stageId': 'stage-uuid-456',
'sort': 'createdAt',
'direction': 'DESC'
}
)
topics = response.json()['data']
{
"data": [
{
"id": "topic-uuid-1",
"urlId": "abc123",
"url": "/add-mobile-app-abc123",
"title": "Add mobile app",
"description": "We need a mobile app",
"text": "It would be great to have native mobile apps for iOS and Android.",
"publishedAt": "2024-01-15T10:30:00Z",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-16T14:20:00Z",
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"subscriberId": "sub-uuid-789",
"voteCount": 156,
"commentCount": 23,
"meta": {
"ctaTitle": "Vote for this feature",
"projectId": "project-uuid"
}
}
],
"pagination": {
"offset": 0,
"limit": 50
}
}
Topics
List Topics
Get all published topics (feature requests) for a specific roadmap stage. Supports sorting and pagination.
POST
/
v1
/
public
/
topics.list
curl --location --request POST 'https://api.userorbit.com/v1/public/topics.list' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"sort": "createdAt",
"direction": "DESC"
}'
const response = await fetch('https://api.userorbit.com/v1/public/topics.list', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
roadmapId: 'roadmap-uuid-123',
stageId: 'stage-uuid-456',
sort: 'createdAt',
direction: 'DESC'
})
});
const { data: topics, pagination } = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/topics.list',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'roadmapId': 'roadmap-uuid-123',
'stageId': 'stage-uuid-456',
'sort': 'createdAt',
'direction': 'DESC'
}
)
topics = response.json()['data']
{
"data": [
{
"id": "topic-uuid-1",
"urlId": "abc123",
"url": "/add-mobile-app-abc123",
"title": "Add mobile app",
"description": "We need a mobile app",
"text": "It would be great to have native mobile apps for iOS and Android.",
"publishedAt": "2024-01-15T10:30:00Z",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-16T14:20:00Z",
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"subscriberId": "sub-uuid-789",
"voteCount": 156,
"commentCount": 23,
"meta": {
"ctaTitle": "Vote for this feature",
"projectId": "project-uuid"
}
}
],
"pagination": {
"offset": 0,
"limit": 50
}
}
Authentication
Authorization: Bearer YOUR_API_KEY
Request Body
string
required
Roadmap ID (UUID)
string
required
Stage ID (UUID) to filter topics by
string
default:"createdAt"
Field to sort by (createdAt, updatedAt, title)
string
default:"DESC"
Sort direction (ASC or DESC)
Response
array
Array of topic objects
Show Topic Object
Show Topic Object
string
Topic ID (UUID)
string
Short URL identifier
string
URL path
string
Topic title
string
Short description
string
Full topic text
string
Publication timestamp
string
Creation timestamp
string
Last update timestamp
string
Roadmap ID
string
Stage ID
string
Creator subscriber ID
number
Number of votes
number
Number of comments
object
Custom metadata
object
Pagination metadata
curl --location --request POST 'https://api.userorbit.com/v1/public/topics.list' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"sort": "createdAt",
"direction": "DESC"
}'
const response = await fetch('https://api.userorbit.com/v1/public/topics.list', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
roadmapId: 'roadmap-uuid-123',
stageId: 'stage-uuid-456',
sort: 'createdAt',
direction: 'DESC'
})
});
const { data: topics, pagination } = await response.json();
import requests
response = requests.post(
'https://api.userorbit.com/v1/public/topics.list',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'roadmapId': 'roadmap-uuid-123',
'stageId': 'stage-uuid-456',
'sort': 'createdAt',
'direction': 'DESC'
}
)
topics = response.json()['data']
{
"data": [
{
"id": "topic-uuid-1",
"urlId": "abc123",
"url": "/add-mobile-app-abc123",
"title": "Add mobile app",
"description": "We need a mobile app",
"text": "It would be great to have native mobile apps for iOS and Android.",
"publishedAt": "2024-01-15T10:30:00Z",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-16T14:20:00Z",
"roadmapId": "roadmap-uuid-123",
"stageId": "stage-uuid-456",
"subscriberId": "sub-uuid-789",
"voteCount": 156,
"commentCount": 23,
"meta": {
"ctaTitle": "Vote for this feature",
"projectId": "project-uuid"
}
}
],
"pagination": {
"offset": 0,
"limit": 50
}
}
Behavior
- Published Only: Only returns topics with
publishedAtset (not null) - Stage Filtering: Topics filtered by specific roadmap stage
- Sorted: Returns topics sorted by specified field
- Pagination: Supports offset/limit pagination
Use Cases
- Roadmap Display: Show feature requests by stage
- Public Roadmap: Display planned features to users
- Feature Voting: List features for users to vote on
Notes
- Both
roadmapIdandstageIdare required - Only published topics are returned (draft topics excluded)
- Topics include vote and comment counts
- Stage must belong to the specified roadmap
Was this page helpful?

