List announcements
The platform.announcements.list operation: GET /api/v1/platform/announcements in the REST API and the platform_announcements_list tool in the MCP server.
GET
/api/v1/platform/announcementsLists every announcement, newest first (spec §39.1): its message, severity, link, audience (all organizations or
some plans), when it shows, whether it shows now (current), and who ended it. Pass next_cursor as
starting_after for the next page.
At a glance
- REST:
GET /api/v1/platform/announcements - MCP tool:
platform_announcements_list - Operation ID:
platform.announcements.list - Scope: Platform
- Permission:
platform:read - Risk tier:
read - Dry run: Not supported
- Idempotency: Not needed (read only)
- Modes: Test and live
- Pagination:
limit(at most 100) andstarting_after - Authentication: API key with the
platform:readscope - Since: M12
Request
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
limit | integer (1 to 100) | No | Page size, 1 to 100 (default 10). |
starting_after | string | No | The next_cursor of the previous page. |
Response
200 OK with a JSON object, a page of the list (newest first):
| Field | Type | Description |
|---|---|---|
object | "list" | |
data | array of object | |
data[].object | "platform_announcement" | |
data[].id | string | The announcement's slug. |
data[].message | string | |
data[].severity | one of info, warning, critical | |
data[].link | string or null | |
data[].audience | object | |
data[].startsAt | date-time | |
data[].endsAt | date-time or null | |
data[].endedAt | date-time or null | |
data[].endedBy | usr_… ID or null | |
data[].current | boolean | Whether it shows now. |
data[].state | one of scheduled, showing, finished, ended | scheduled (starts later), showing, finished (past endsAt) or ended (by staff). |
data[].createdBy | usr_… ID | |
data[].createdAt | date-time | |
data[].version | integer | |
has_more | boolean | |
next_cursor | string or null |
Examples
All announcements
HTTP
GET /api/v1/platform/announcements
Authorization: Bearer or_test_…
Response (200):
JSON
{
"object": "list",
"data": [
{
"object": "platform_announcement",
"id": "maintenance-2026-11-08",
"message": "Planned maintenance on Sunday, November 8, 02:00–02:30 UTC. Checkout and the API stay up.",
"severity": "info",
"link": "/docs",
"audience": {
"kind": "all"
},
"startsAt": "2026-11-05T00:00:00.000Z",
"endsAt": "2026-11-08T03:00:00.000Z",
"endedAt": null,
"endedBy": null,
"current": true,
"state": "showing",
"createdBy": "usr_01m5wvkry1e6w94sjxgme33fsa",
"createdAt": "2026-11-03T09:00:00.000Z",
"version": 1
}
],
"has_more": false,
"next_cursor": null
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
validation_failed | 400 | A pagination value is invalid. | Fix the fields listed in details.issues and send the request again. |
permission_denied | 403 | You aren't platform staff with read access to the platform console. | Ask an organization owner or admin for a role or scope that allows this action. |
It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.