News
Scoped news items that power the launcher home feed and other surfaces. Drafts are only visible to users with news:draft.read.
List news (authenticated)
GET /v1/news
Query params:
scope(required):global,server,network,extension, orservicescopeId(required for non-global scopes)includeParents(optional, defaultfalse)status(optional):draft,published, orarchivedlimit(optional, default200, max500)
Response:
json
{
"items": [
{
"id": "66c8c2d5f5d8b1b1b1b1b1b1",
"scope": { "type": "service", "id": "launcher" },
"title": "Launcher beta is live",
"summary": "Try the new profile sync preview.",
"body": "Full markdown body...",
"tag": "Launcher",
"link": "https://uebliche.net",
"status": "published",
"releaseDate": "2026-02-05T12:00:00Z",
"createdAt": "2026-02-04T11:00:00Z",
"updatedAt": "2026-02-04T11:30:00Z"
}
]
}List news (public)
GET /v1/public/news
Query params:
scope(required):global,server,network,extension, orservicescopeId(required for non-global scopes)includeParents(optional, defaultfalse)limit(optional, default200, max500)
The response only includes published entries with a releaseDate in the past.
News RSS feed
GET /v1/public/news/rss
Query params:
scope(optional, defaults toglobal)scopeId(required for non-global scopes)includeParents(optional, defaultfalse)limit(optional, default200, max500)
Response:
- Content type:
application/rss+xml; charset=utf-8 - Format: RSS 2.0 feed with channel metadata plus one item per published news entry
- Item fields:
title,summaryas RSSdescription,releaseDateaspubDate, optionaltagascategory, and optionallink
Create news
POST /v1/news
Body:
json
{
"scope": { "type": "service", "id": "launcher" },
"title": "Launcher beta is live",
"summary": "Try the new profile sync preview.",
"body": "Full markdown body...",
"tag": "Launcher",
"link": "https://uebliche.net",
"status": "draft",
"releaseDate": "2026-02-05"
}releaseDate accepts YYYY-MM-DD (time optional) or an RFC3339 timestamp.
Update news
PATCH /v1/news/{newsId}
Body fields are optional. Use the same fields as POST /v1/news.
Delete news
DELETE /v1/news/{newsId}