Admin withdraw an in-app notice
const url = 'https://api.deploybase.eu/api/v1/api/v1/admin/notices/example/withdraw';const options = {method: 'POST', headers: {Authorization: '<Authorization>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.deploybase.eu/api/v1/api/v1/admin/notices/example/withdraw \ --header 'Authorization: <Authorization>'Expires a notice immediately so nobody sees it again. There is no delete: the per-person dismiss and acknowledgement rows written against the key stay meaningful, and an acknowledgement has to survive the notice it was given for. Idempotent — withdrawing an already-expired notice leaves the original expiry alone, because that timestamp is when readers actually stopped seeing it.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Notice ID
Responses
Section titled “ Responses ”OK
object
object
object
CreatedBy is the authoring platform admin’s Zitadel subject. Text, not uuid: there is no users table (same reasoning as teams.deletion_requested_by).
EmailSentAt is the double-send guard for a fan-out that does not exist yet (v1 is in-app only). Always NULL today.
ExpiresAt is also how a notice is withdrawn: there is no delete, so the state rows people already wrote against the key stay meaningful.
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
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Unauthorized
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Forbidden
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Not Found
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Internal Server Error
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}Service Unavailable
object
object
Example generated
{ "code": "example", "details": "example", "error": "example", "meta": { "request_id": "example", "timestamp": "example", "trace_id": "example" }}