Skip to content

End an announcement

The platform.announcements.end operation: POST /api/v1/platform/announcements/{id}/end in the REST API and the platform_announcements_end tool in the MCP server.

POST/api/v1/platform/announcements/{id}/end

Stops showing an announcement now (spec §39.1). It stays in the list with when and by whom it was ended. Ending an announcement that already ended changes nothing. Platform admins only.

At a glance

  • REST: POST /api/v1/platform/announcements/{id}/end
  • MCP tool: platform_announcements_end
  • Operation ID: platform.announcements.end
  • Scope: Platform
  • Permission: platform:write
  • Risk tier: write
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the platform:write scope
  • Since: M12

Request

Path parameters

FieldTypeDescription
idstringThe announcement's slug.

Body

This operation takes no body.

Response

200 OK with a JSON object:

FieldTypeDescription
object"platform_announcement"
idstringThe announcement's slug.
messagestring
severityone of info, warning, critical
linkstring or null
audienceobject
startsAtdate-time
endsAtdate-time or null
endedAtdate-time or null
endedByusr_… ID or null
currentbooleanWhether it shows now.
stateone of scheduled, showing, finished, endedscheduled (starts later), showing, finished (past endsAt) or ended (by staff).
createdByusr_… ID
createdAtdate-time
versioninteger

Examples

End the maintenance notice early

HTTP
POST /api/v1/platform/announcements/maintenance-2026-11-08/end
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14

Response (200):

JSON
{
  "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": "2026-11-08T02:31:00.000Z",
  "endedBy": "usr_01m5wvkry1e6w94sjxgme33fsa",
  "current": false,
  "state": "ended",
  "createdBy": "usr_01m5wvkry1e6w94sjxgme33fsa",
  "createdAt": "2026-11-03T09:00:00.000Z",
  "version": 2
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No announcement has this ID.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
version_conflict409The announcement changed at the same time; retry.Fetch the object again and retry the change.
permission_denied403You aren't a platform admin.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, rate_limited, internal_error.