> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipstar.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Banner by Slug

> Get a project's live announcement banner by its stable public slug

Returns the live banner for an embed key. This is what the [embed widget](/guides/website-integration#announcement-banner) fetches: the slug is the project's stable banner key (`<project-slug>-banner`), and it stays the same when a new banner replaces the old one, so a snippet pasted once keeps showing whatever is current. No authentication required.

A `404` means nothing is live for that key (never published, replaced, or past its take-down time) — render nothing.

## Path Parameters

<ParamField path="public_slug" type="string" required>
  The banner's public slug, shown in the dashboard's "Add to your website" sheet after the first publish.
</ParamField>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.shipstar.ai/api/v1/banner/acme-banner"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.shipstar.ai/api/v1/banner/acme-banner');
  const banner = response.status === 404 ? null : await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get('https://api.shipstar.ai/api/v1/banner/acme-banner')
  banner = None if response.status_code == 404 else response.json()
  ```
</CodeGroup>

## Response

The same shape as [Get Live Banner](/api-reference/banner/get-live-banner).

```json 200 theme={null}
{
  "slug": "acme-banner",
  "headline": "Scheduled X threads now post themselves",
  "body": "Approve once; Shipstar posts the thread at the scheduled time.",
  "cta_label": "See what's new",
  "badge": "New",
  "link_url": "https://acme.com/changelog",
  "period_start": "2026-08-31",
  "period_end": "2026-09-07",
  "published_at": "2026-09-07T09:02:11+00:00",
  "expires_at": null,
  "commit_count": 14
}
```

## Errors

| Status | Description                                      |
| ------ | ------------------------------------------------ |
| 404    | No live banner for this slug                     |
| 429    | Rate limit exceeded — wait `Retry-After` seconds |
