---
title: "Mark announcement as viewed"
method: POST
path: "/announcements/{id}/view"
tags: ["announcements"]
---

# Mark announcement as viewed

`POST /announcements/{id}/view`

## Request

- Base URL: `https://api.focusbear.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.focusbear.io/announcements/{id}/view`
- Auth: HTTP bearer

Record that a user has viewed or dismissed an announcement. This operation is idempotent.

## Path parameters

- `id` string, required

## Request body

- ViewAnnouncementDto
  - `action` 'viewed' | 'dismissed': Action type for the announcement view
  - `source` string: Source or context where the announcement was viewed
  - `viewed_at` string, date-time: Timestamp when the announcement was viewed

## Response `204`

Announcement successfully marked as viewed

## Other responses

- `400`: Invalid request parameters
- `401`: Unauthorized - invalid or missing authentication token
- `404`: Announcement not found

---

[API](https://skmtc.dev/focusbear/apis/focusbear-api.md) - [All operations](https://skmtc.dev/focusbear/apis/focusbear-api/llms.txt) - [OpenAPI document](https://skmtc.dev/focusbear/apis/focusbear-api/revisions/3a83a3b9a811?raw)
