---
title: "Change theme settings (same fields as the MCP set_theme tool); send only what should change"
method: POST
path: "/api/v1/page/theme"
---

# Change theme settings (same fields as the MCP set_theme tool); send only what should change

`POST /api/v1/page/theme`

## Request

- Base URL: `https://posy.page`
- URL: `https://posy.page/api/v1/page/theme`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://posy.page/api/auth/oauth2/authorize`, token URL `https://posy.page/api/auth/oauth2/token`, scopes: `page:write`)

Looks (style): cozy, washi, lofi, painted, cobalt, night. Returns the whole theme.

## Request body

- object
  - `style` 'cozy' | 'washi' | 'lofi' | 'painted' | 'cobalt' | 'night'
  - `preset` string
  - `accent` string
  - `font` string
  - `radius` string
  - `layout` 'bento' | 'list' | 'canvas'
  - `align` string
  - `tileStyle` string
  - `effect` string
  - `avatar` string
  - `photos` 'natural' | 'mono' | 'dither' | 'ascii'
  - `motion` boolean
  - `ambient` boolean
  - `background` object
    - `style` string
    - `image` string
    - `dim` number
    - `blur` number
    - `grain` boolean
    - `color` string

## Response `200`

{ theme }

## Other responses

- `400`: Invalid input; the message says why

---

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