PATCH /site/appearance
Updated Oct 1, 20261 minute read
Change the site's appearance
Only what is sent changes. Custom CSS loads after the theme, so it wins; it styles tokens like --site-accent and parts like [data-part="hero"]. Admins and owners only.
Part of Site.
Request body
application/json, optional.
| Field | Type | Required | Description |
|---|---|---|---|
theme | "paper" | No | |
scheme | "system" | "light" | "dark" | No | |
navigation | "top" | "sidebar" | "topics" | No | A bar across the top, a sidebar with each collection's articles under it, or a sidebar listing the collections alone. Sites that never set it get sidebar. |
accent | any | No | A hex color like #4f46e5, or null to use the theme's own. |
css | string | No | Replaces the whole stylesheet, up to 60,000 characters. An empty string removes it. |
Responses
| Status | Description |
|---|---|
200 | The appearance, as it now reads. |
400 | The request is malformed, and the message names the field. |
401 | The bearer token is missing, revoked, or expired. |
429 | Too many requests. Wait the seconds in Retry-After. Limits depend on the plan. See rate limits. |
200 body
| Field | Type | Required | Description |
|---|---|---|---|
theme | "paper" | No | |
scheme | "system" | "light" | "dark" | No | |
navigation | "top" | "sidebar" | "topics" | No | A bar across the top, a sidebar with each collection's articles under it, or a sidebar listing the collections alone. |
accent | any | No | A hex color, or null for the theme's own. |
css | string | No | The custom stylesheet. Empty when there is none. |
Example request
curl -X PATCH https://api.median.sh/v1/site/appearance \
-H "Authorization: Bearer $BEARER_AUTH"