---
title: "Update caption style"
method: PATCH
path: "/projects/{projectId}/captions/style"
tags: ["Captions and Themes"]
---

# Update caption style

`PATCH /projects/{projectId}/captions/style`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/projects/{projectId}/captions/style`
- Auth: API key in header `Authorization`

Update caption style.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `look_id` string
  - `preset_id` string
  - `clear_word_overrides` boolean
  - `style` object
    - `fontSize` integer: Font size in pixels (16-120).
    - `fontFamily` string: Font family name (e.g., 'Inter', 'Anton', 'Space Grotesk', 'Bebas Neue').
    - `fontWeight` string: Font weight (e.g., '400', '600', '700', '800').
    - `textAlign` 'left' | 'center' | 'right' | 'justify': Text alignment.
    - `lineHeight` number: Line height multiplier (0.8-2).
    - `letterSpacing` number: Letter spacing in pixels.
    - `color` string: Text color as hex (e.g., '#FFFFFF') or rgba.
    - `backgroundColor` string: Background color as hex or rgba. Use 'transparent' for no background.
    - `borderRadius` integer: Border radius for background in pixels.
    - `textStrokeEnabled` boolean: Enable text outline.
    - `textStrokeColor` string: Outline color as hex (e.g., '#000000').
    - `textStrokeWidthPx` integer: Outline width in pixels (0-10).
    - `textStrokeBlurPx` integer: Outline blur in pixels.
    - `textShadow` string: CSS text-shadow value (e.g., '0 0 10px #00FFFF' for glow, '0 4px 16px rgba(0,0,0,0.5)' for drop shadow, 'none' to remove).
    - `position` 'bottom' | 'middle' | 'top' | 'custom': Vertical position preset.
    - `customPositionY` integer: Custom Y position in output canvas pixels from top (0-2000).
    - `showActiveWord` boolean: Highlight the currently spoken word.
    - `spokenWordColorDurationMs` number, nullable: Keep spoken words in the active color with this transition duration in milliseconds. Null restores active-word-only color.
    - `activeWordScale` number, nullable
    - `activeWordTransition` 'spring' | 'instant'
    - `activeWordLayout` 'reserved' | 'reflow'
    - `captionMotion` 'none' | 'tremble'
    - `lineWrap` 'balanced' | 'greedy'
    - `customPositionAnchor` 'top' | 'center'
    - `emphasisFontStyle` 'normal' | 'italic', nullable
    - `activeWordColor` string: Color of the active/highlighted word.
    - `activeWordBackgroundColor` string: Background color of the active word.
    - `activeWordAnimation` 'highlight' | 'scale' | 'glow' | 'lift' | 'bounce' | 'punch' | 'slam' | 'elastic' | 'shake' | 'none': Animation style for active word.
    - `emojiOverlaySizePx` union: Top-overlay emoji size in pixels. Use 0 to disable, otherwise 64-220.
      - 0
      - integer
    - `wordRevealAnimation` 'none' | 'fade' | 'scale' | 'slide-up' | 'slide-left' | 'slide-mix' | 'pop' | 'drop' | 'slam' | 'typewriter' | 'glitch' | 'mask-reveal' | 'bounce-up' | 'split-reveal': Animation when words appear.
    - `maxLinesPerCaption` integer: Maximum lines per caption (1-3).
    - `wordsPerLineLimit` integer, nullable: Max words per line. Null for auto.
    - `emphasisEnabled` boolean: Enable emphasis styling for important words.
    - `emphasisColor` string, nullable: Emphasis text color.
    - `emphasisScale` number: Scale factor for emphasis words (1-2).
    - `emphasisFontWeight` string: Font weight for emphasis words.
    - `emphasisGlowColor` string, nullable: Glow color for emphasis words.
    - `emphasisGlowBlurPx` integer, nullable: Glow blur for emphasis words.

## Response `200`

Successful response

- object
  - `success` boolean, required
  - `updated_properties` string[], required
  - `look_id` string, nullable
  - `preset_id` string, nullable
  - `verified` boolean, required
  - `effective_settings` object, required
  - `warnings` string[], required
  - `cleared_word_overrides` integer, required
  - `message` string

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `500`: Internal server error

---

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