---
title: "Add Subtitles"
method: POST
path: "/api/subtitle"
---

# Add Subtitles

`POST /api/subtitle`

## Request

- Base URL: `https://api.openshorts.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openshorts.app/api/subtitle`
- Auth: none declared

## Request body

- SubtitleRequest
  - `job_id` string, required
  - `clip_index` integer, required
  - `position` string
  - `font_size` integer
  - `font_name` string
  - `font_color` string
  - `border_color` string
  - `border_width` integer
  - `bg_color` string
  - `bg_opacity` number
  - `style` string
  - `highlight_color` string
  - `effect` string
  - `base_opacity` number
  - `uppercase` boolean
  - `reveal` boolean
  - `shadow` integer
  - `max_chars` integer, nullable
  - `max_duration` number, nullable
  - `preset` string, nullable
  - `input_filename` string, nullable
  - `words` CaptionWordIn[], nullable
    - `text` string, required
    - `startMs` integer, required
    - `endMs` integer, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-02** `9936303ac853`: 5 info
  - added the new optional request property `max_chars`
  - added the new optional request property `max_duration`
  - added the new optional request property `preset`
  - added the new optional request property `reveal`
  - …1 more

[Operation history](https://skmtc.dev/openshorts/apis/openshorts-api/changes/api/subtitle/post.md)

---

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