---
title: "Update appearance and settings"
method: PATCH
path: "/settings"
tags: ["Profile & Settings"]
---

# Update appearance and settings

`PATCH /settings`

## Request

- Base URL: `https://doomscrollr.com/api/v1`
- URL: `https://doomscrollr.com/api/v1/settings`
- Auth: HTTP bearer

Update any subset of settings — name, bio, title, description, font, analytics, and more.

## Request body

- object
  - `name` string
  - `bio` string
  - `title` string
  - `description` string
  - `logo` string: Logo image URL
  - `favicon` string: Favicon image URL
  - `og_image` string: Open Graph/social share image URL
  - `font_id` integer
  - `logo_max_width` integer, nullable: Maximum rendered logo width in pixels
  - `user_theme` string: Theme identifier such as light or dark
  - `desktop_grid` integer
  - `mobile_grid` integer
  - `text_alignment` 'left' | 'center' | 'right'
  - `post_spacing` integer
  - `grid_row_spacing` integer: Desktop grid row spacing in pixels
  - `grid_column_spacing` integer: Desktop grid column spacing in pixels
  - `grid_alignment` 'left' | 'center' | 'right': Grid alignment
  - `mobile_grid_row_spacing` integer: Mobile grid row spacing in pixels
  - `mobile_grid_column_spacing` integer: Mobile grid column spacing in pixels
  - `mobile_post_spacing` integer: Mobile post spacing in pixels
  - `css` string, nullable: Custom CSS for the DOOMSCROLLR
  - `js` string, nullable: Custom JavaScript for the DOOMSCROLLR
  - `custom_cursor` string, nullable: Custom cursor URL or CSS cursor value
  - `secret_emoji` string, nullable: Secret emoji trigger
  - `cookie_banner_show` boolean
  - `cta_bar_text` string
  - `cta_bar_url` string
  - `cta_bar_scroll` boolean
  - `email_subject` string, nullable: Default email capture/welcome subject
  - `email_copy` string, nullable: Default email capture/welcome copy
  - `email_cta` string, nullable: Default email capture/welcome CTA
  - `pre_check_consent` boolean: Pre-check subscriber consent checkbox
  - `countdown_timer` boolean: Enable countdown timer when the account plan allows it
  - `countdown_timer_date` string, date-time, nullable: Countdown timer target date
  - `popup_number_posts` integer
  - `popup_options_enabled` boolean
  - `popup_show_to_users` boolean
  - `popup_time_delay` integer
  - `buy_button_max_width` integer
  - `buy_button_position` 'above' | 'below'
  - `buy_button_mode` 'smart' | 'always' | 'manual'
  - `buy_button_background_color` string
  - `buy_button_text_color` string
  - `buy_button_outline_color` string
  - `subscription_enabled` boolean: Enable paid subscription/membership
  - `subscription_price` integer, nullable: Subscription price in cents
  - `subscription_interval` 'monthly' | 'yearly' | 'null', nullable: Subscription billing interval
  - `subscription_gate_mode` 'all' | 'tags' | 'manual' | 'null', nullable: Subscription content gating mode
  - `subscription_gate_tag_ids` integer[]: Tag ids gated when subscription_gate_mode is tags
  - `google_analytics_account_id` string
  - `facebook_pixel_id` string
  - `google_translate` boolean: Enable Google Translate widget
  - `google_translate_default_language` string, nullable: Default language code for Google Translate
  - `draft_mode` boolean
  - `pages_settings_enabled` boolean: Enable public pages/navigation settings

## Response `200`

Updated

## Other responses

- `429`: Monthly API rate limit exceeded

---

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