Admin list in-app notices
const url = 'https://api.deploybase.eu/api/v1/api/v1/admin/notices';const options = {method: 'GET', 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 GET \ --url https://api.deploybase.eu/api/v1/api/v1/admin/notices \ --header 'Authorization: <Authorization>'Every notice deploybase has published, newest first, withdrawn and expired ones included. Withdrawal is an expiry rather than a delete, so hiding expired rows would hide exactly the ones somebody goes looking for after a mistake. Derived notices such as the functions closed-beta invite are computed per reader and never appear here.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “ Query Parameters ”Page number (default 1)
Page size, 1-100 (default 20)
Responses
Section titled “ Responses ”OK
object
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.
PageSize echoes the applied size, which may be the default rather than what was asked for.
Total is the unpaginated count, so the dashboard can page and badge without a second call.
Example generated
{ "data": { "notices": [ { "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" } ], "page": 1, "page_size": 1, "total": 1, "total_pages": 1 }, "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" }}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" }}