{"meta":{"title":"REST API endpoints for global announcements","intro":"Use the REST API to manage the global announcement banner in your enterprise.","product":"REST API","breadcrumbs":[{"href":"/en/enterprise-server@3.22/rest","title":"REST API"},{"href":"/en/enterprise-server@3.22/rest/enterprise-admin","title":"Enterprise administration"},{"href":"/en/enterprise-server@3.22/rest/enterprise-admin/announcement","title":"Announcement"}],"documentType":"article"},"body":"# REST API endpoints for global announcements\n\nUse the REST API to manage the global announcement banner in your enterprise.\n\n## About announcements\n\nYou can use the REST API to manage the global announcement banner in your enterprise. For more information, see [Customizing user messages for your enterprise](/en/enterprise-server@3.22/admin/managing-accounts-and-repositories/communicating-information-to-users-in-your-enterprise/customizing-user-messages-for-your-enterprise#creating-a-global-announcement-banner).\n\n> \\[!NOTE]\n> These endpoints only support authentication using a personal access token (classic). For more information, see [Managing your personal access tokens](/en/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n> \\[!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.\n\n## Get the global announcement banner\n\n```\nGET /enterprise/announcement\n```\n\nGets the current message and expiration date of the global announcement banner in your enterprise.\n\n### HTTP response status codes\n\n* **200** - OK\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  http(s)://HOSTNAME/api/v3/enterprise/announcement\n```\n\n**Response schema (Status: 200):**\n\n* `announcement`: required, string or null\n* `expires_at`: string or null, format: date-time\n* `user_dismissible`: boolean or null, default: `false`\n\n## Set the global announcement banner\n\n```\nPATCH /enterprise/announcement\n```\n\nSets the message and expiration time for the global announcement banner in your enterprise.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Body parameters\n\n* **`announcement`** (string or null) (required)\n  The announcement text in GitHub Flavored Markdown. For more information about GitHub Flavored Markdown, see \"Basic writing and formatting syntax.\"\n\n* **`expires_at`** (string or null)\n  The time at which the announcement expires. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ. To set an announcement that never expires, omit this parameter, set it to null, or set it to an empty string.\n\n* **`user_dismissible`** (boolean or null)\n  Whether an announcement can be dismissed by the user.\n  Default: `false`\n\n### HTTP response status codes\n\n* **200** - OK\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X PATCH \\\n  http(s)://HOSTNAME/api/v3/enterprise/announcement \\\n  -d '{\n  \"announcement\": \"Very **important** announcement about _something_.\",\n  \"expires_at\": \"2021-01-01T00:00:00.000+00:00\"\n}'\n```\n\n**Response schema (Status: 200):**\n\nSame response schema as [Get the global announcement banner](#get-the-global-announcement-banner).\n\n## Remove the global announcement banner\n\n```\nDELETE /enterprise/announcement\n```\n\nRemoves the global announcement banner in your enterprise.\n\n### HTTP response status codes\n\n* **204** - No Content\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X DELETE \\\n  http(s)://HOSTNAME/api/v3/enterprise/announcement\n```\n\n**Response schema (Status: 204):**"}