---
title: "Post Bulletin"
method: POST
path: "/bulletin"
---

# Post Bulletin

`POST /bulletin`

Append a message to the bulletin board.

Returns 201 when the message is stored and any registered signal action
ran. When a signal action hook fails (for example a ``blocker`` whose
clearance gate did not materialize), the message is still on the
append-only board and queued in the board's retry outbox, but the action is
not complete: the response is 202 rather than 201 so the caller can tell
"stored and acted on" from "stored, action pending retry" (#2648).

## Request body

- BulletinPostRequest — Body for POST /bulletin.
  - `agent_id` string, required
  - `type` 'alert' | 'blocker' | 'finding' | 'status' | 'dependency'
  - `content` string, required
  - `cell_id` string, nullable

## Response `201`

Successful Response

- BulletinMessageResponse — Single bulletin message in responses.
  - `agent_id` string, required
  - `type` string, required
  - `content` string, required
  - `timestamp` number, required
  - `cell_id` string, nullable, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server.md) · [All operations](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sipyourdrink-ltd/bernstein-task-server/versions/86f514b4e920/schema)
