---
title: "Override the plan-driven \"Made with Nippy\" banner for one site"
method: PATCH
path: "/stats/sites/{id}/banner"
tags: ["Stats"]
---

# Override the plan-driven "Made with Nippy" banner for one site

`PATCH /stats/sites/{id}/banner`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/stats/sites/{id}/banner`
- Auth: `bearer` (a scheme the document does not define)

Admin-only switch. By default the account plan decides whether the banner is injected (free shows it, paid tiers hide it); this endpoint forces it on/off per-site (`true`/`false`) or returns the site to the plan default (`null`) — e.g. showing the banner on our own paid demo sites for marketing. Republishes the edge record so the worker picks the change up immediately, and records a site.settings_changed activity attributed to the acting admin.

## Path parameters

- `id` string, required

## Request body

- UpdateSiteBannerDto
  - `showBannerOverride` boolean, nullable, required: Per-site override of the plan-driven "Made with Nippy" banner. true forces the banner on (e.g. our own paid demo sites), false forces it off, null returns the site to its plan default.

## Response `200`

- APIAdminSiteBanner
  - `id` string, required: Site id (UUID).
  - `showBannerOverride` boolean, nullable, required: Banner override after the change — null follows the plan, true/false force it on/off.

## Other responses

- `403`: Admin access required
- `404`: Site not found

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
