---
title: "Merge shorts videos and add subtitles"
method: POST
path: "/api/agent/shorts/merge"
tags: ["Shorts"]
---

# Merge shorts videos and add subtitles

`POST /api/agent/shorts/merge`

## Request body

- ShortsMergeRequest
  - `video_urls` string[], required — 2-4 video URLs hosted on download.citedy.com
  - `phrases` ShortsMergePhraseItem[], required — Must contain exactly one phrase per video URL
    - `text` string, required
  - `config` ShortsMergeConfig
    - `words_per_phrase` integer
    - `font_size` integer
    - `position_from_bottom` integer
    - `text_color` string — Hex color (#FFFFFF) or named color
    - `stroke_color` string — Hex color (#FFFFFF) or named color
    - `stroke_width` integer

## Response `200`

Merge completed

- ShortsMergeResponse
  - `video_url` string, uri, required
  - `r2_key` string, required
  - `duration` number, required
  - `segment_durations` number[], required
  - `credits_charged` integer, required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `402` — Insufficient credits
- `409` — Conflict
- `429` — Rate limit exceeded
- `500` — Internal server error

## Changes

- **2026-03-03** `9cd5ce117b1d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/citedy/apis/citedy-agent-api/changes/api/agent/shorts/merge/post.md)

---

[API](https://skmtc.dev/citedy/apis/citedy-agent-api.md) · [All operations](https://skmtc.dev/citedy/apis/citedy-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/citedy/citedy-agent-api/revisions/b5785d3fe446/schema)
