---
title: "Configure announcement banners"
method: PUT
path: "/api/{org_id}/announcements/config"
tags: ["Announcements"]
---

# Configure announcement banners

`PUT /api/{org_id}/announcements/config`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/announcements/config`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/announcements/config/put.ts> (a function with typed inputs; its response is checked against the schema)

Replaces the announcement banner configuration. Only accessible from the meta organization. The body is validated and normalized before storage: timestamps must be RFC 3339 with a UTC offset, and relative durations are resolved to absolute instants at write time. An empty banner list removes every banner. Validation errors name the offending banner index and field. A body carrying the `revision` it was read at is refused with 409 when the config has been saved since.

## Path parameters

- `org_id` string, required

## Request body

- object

## Response `200`

Success

- object

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `409`: Conflict
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
