Announcements

Update a system announcement (admin only)

Admin-gated. Body fields are all optional; only fields present in the request are mutated. An empty body {} returns 200 with the row unchanged.

expires_at carries three-state semantics:

  • absent → column is left unchanged.
  • explicit null → column is set to NULL (no expiry).
  • concrete value → column is set to the supplied timestamp; must be strictly greater than the effective published_at if both are supplied in the same request.

title and body, when supplied, are TrimSpace'd and length-checked (1..200 / 1..2000 chars).

Decode is permissive — unknown top-level fields are silently ignored to match the rest of the API's POST/PUT convention.

put/api/v1/announcements/{announcementID}

Request

  • Base URL: https://api.uptimemonitoring.com
  • URL: https://api.uptimemonitoring.com/api/v1/announcements/{announcementID}
  • Auth: HTTP bearer

Path parameters

announcementIDinteger required

Announcement ID.

Request body

titlestring
bodystring
published_atstring date-time
expires_atstring date-time nullable

Response

Announcement updated (or unchanged on empty body).

idinteger
titlestring
bodystring
published_atstring date-time
expires_atstring date-time nullable
updated_atstring date-time

Last time this row was mutated. For rows created after migration 025 (2026-08-01), this is exact creation time if never edited. For rows that already existed when that migration ran, no creation timestamp had ever been recorded, so the backfilled starting value is LEAST(published_at, migration time) instead — not the row's actual original creation time. Bumped by any PUT that changes at least one field; an empty-body no-op PUT does not bump it. Strictly monotonic per row — never ties or regresses across concurrent writes.

Changes

No recorded changes to this operation across all 1 revision of this API.