---
title: "Recolour a preset and swap its font pair"
method: POST
path: "/presets/{id}/theme"
---

# Recolour a preset and swap its font pair

`POST /presets/{id}/theme`

## Request

- Base URL: `https://rendry.io/api/v1`
- URL: `https://rendry.io/api/v1/presets/{id}/theme`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer
  - HTTP bearer

Applies a palette (or the palette of a photo) to the whole design in one call.

## Path parameters

- `id` string, required

## Headers

- `X-Rendry-Account` string

## Request body

- object
  - `palette` object: Explicit palette (background/support/accent/text)
  - `from_url` string: Take the palette from this photo instead
  - `storage_key` string: Or the user's own image: its storage_key from GET /assets (a link to a file in the account is closed to the server's fetcher)
  - `font_pair` string: Heading/body font pair name

## Response `200`

Theme applied, new version saved

## Other responses

- `400`: `unknown_field` (a key the tool does not read; a near miss is renamed and reported in `autofixed_fields`), `invalid_input` (palette or font pair), `url_rejected` / `download_failed` for from_url. 404 `preset_not_found`.
- `401`: Missing/invalid API key

---

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