Skip to content

Admin create an in-app notice

POST
/api/v1/admin/notices
curl --request POST \
--url https://api.deploybase.eu/api/v1/api/v1/admin/notices \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "audience_min_role": "example", "audience_team_id": "example", "body": "example", "channels": [ "example" ], "cta_label": "example", "cta_url": "example", "expires_at": "example", "key": "example", "presentation": "example", "published_at": "example", "requires_ack": true, "severity": "example", "title": "example", "version": "example" }'

Publishes a notice to the dashboard. Only key, title and body are required: presentation defaults to the bell, severity to info, the audience to every team at viewer and up, and publication to now. Set audience_team_id to address one team, published_at to schedule, expires_at to let it lapse on its own, and requires_ack with a version when the notice needs an acknowledgement on record. The key is the stable handle the frontend and the per-person state rows use, so it cannot be reused.

Notice to publish

Media type application/json
object
audience_min_role
string
audience_team_id
string
body
required
string
channels
Array<string>
cta_label
string
cta_url
string
expires_at
string
key
required
string
presentation
string
published_at
string
requires_ack
boolean
severity
string
title
required
string
version
string
Example generated
{
"audience_min_role": "example",
"audience_team_id": "example",
"body": "example",
"channels": [
"example"
],
"cta_label": "example",
"cta_url": "example",
"expires_at": "example",
"key": "example",
"presentation": "example",
"published_at": "example",
"requires_ack": true,
"severity": "example",
"title": "example",
"version": "example"
}

Created

Media type application/json
object
data
meta
object
request_id
string
timestamp
string
trace_id
string
data
object
audience_min_role
string
audience_team_id
string
body
string
channels
Array<string>
created_at
string
created_by

CreatedBy is the authoring platform admin’s Zitadel subject. Text, not uuid: there is no users table (same reasoning as teams.deletion_requested_by).

string
cta_label
string
cta_url
string
email_sent_at

EmailSentAt is the double-send guard for a fan-out that does not exist yet (v1 is in-app only). Always NULL today.

string
expires_at

ExpiresAt is also how a notice is withdrawn: there is no delete, so the state rows people already wrote against the key stay meaningful.

string
id
string
key
string
presentation
string
published_at
string
requires_ack
boolean
severity
string
title
string
updated_at
string
version
string
Example generated
{
"data": {
"audience_min_role": "example",
"audience_team_id": "example",
"body": "example",
"channels": [
"example"
],
"created_at": "example",
"created_by": "example",
"cta_label": "example",
"cta_url": "example",
"email_sent_at": "example",
"expires_at": "example",
"id": "example",
"key": "example",
"presentation": "example",
"published_at": "example",
"requires_ack": true,
"severity": "example",
"title": "example",
"updated_at": "example",
"version": "example"
},
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Bad Request

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Unauthorized

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Forbidden

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Conflict

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Internal Server Error

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}

Service Unavailable

Media type application/json
object
code
string
details
error
string
meta
object
request_id
string
timestamp
string
trace_id
string
Example generated
{
"code": "example",
"details": "example",
"error": "example",
"meta": {
"request_id": "example",
"timestamp": "example",
"trace_id": "example"
}
}