---
title: "Create Transcription"
method: POST
path: "/automation/create-transcription"
---

# Create Transcription

`POST /automation/create-transcription`

## Request

- Base URL: `https://public.reap.video/api/v1`
- URL: `https://public.reap.video/api/v1/automation/create-transcription`
- Auth: HTTP bearer

Generate accurate transcriptions from video and audio content

## Request body

- CreateTranscriptionRequest
  - `sourceUrl` string: URL to a video or audio file (alternative to uploadId)
  - `uploadId` string: Upload ID from a previously uploaded file (alternative to sourceUrl)
  - `language` string, nullable: Primary language of the video content (auto-detected if not provided)
  - `translationLanguage` string, nullable: Language to translate the transcription to
  - `transcriptionScript` 'native' | 'roman': Script format for transcription output

## Response `200`

Successful response

- AutomationProject
  - `id` string
  - `title` string
  - `thumbnail` string
  - `billedDuration` number
  - `status` 'queued' | 'prepped' | 'draft' | 'processing' | 'finalizing' | 'completed' | 'invalid' | 'expired' | 'failed' | 'error'
  - `projectType` 'clipping' | 'captions' | 'reframe' | 'dubbing' | 'transcription'
  - `source` 'Upload' | 'Youtube' | 'Vimeo' | 'TwitchVod' | 'Twitter' | 'RumbleEmbed' | 'Generic'
  - `genre` 'talking' | 'screenshare' | 'gaming'
  - `topics` string[]
  - `clipDurations` array[]
    - integer[]
  - `selectedStart` number, nullable
  - `selectedEnd` number, nullable
  - `exportResolution` integer
  - `exportOrientation` 'landscape' | 'portrait' | 'square'
  - `captionsPreset` string, nullable
  - `enableCaptions` boolean
  - `enableEmojis` boolean
  - `enableHighlights` boolean
  - `language` string, nullable
  - `dubbingLanguage` string, nullable
  - `translateTranscription` boolean
  - `translationLanguages` string[]
  - `transcriptionScript` 'native' | 'roman'
  - `metadata` VideoFileMeta
    - `width` integer
    - `height` integer
    - `aspectRatio` string
    - `size` number
    - `bitrate` number
    - `fps` number
    - `duration` number
    - `rotation` integer
    - `resolution` integer
    - `codec` string
    - `codecFullName` string
    - `codecTag` string
    - `format` string
    - `formatFullName` string
  - `urls` ProjectUrls: Presigned URLs for the project's assets. URLs expire — always use the most recent API response. The transcription_* subtitle/text exports are only present on transcription projects.
    - `videoFile` string: Presigned URL of the processed source video
    - `audioFile` string: Presigned URL of the extracted audio track
    - `transcription` string: Presigned URL of the word-level transcript JSON (the translated version when translation ran). Lets API consumers audit content without video playback.
    - `transcription_srt` string: SRT subtitles — transcription projects only
    - `transcription_vtt` string: WebVTT subtitles — transcription projects only
    - `transcription_csv` string: CSV transcript — transcription projects only
    - `transcription_txt` string: Plain-text transcript — transcription projects only
  - `createdAt` integer
  - `updatedAt` integer

## Changes

- **2026-11-03** `4dd80bac4a44`: 1 warning, 7 info
  - removed the optional property `reframeClips` from the response with the `200` status
  - added the optional property `urls/audioFile` to the response with the `200` status
  - added the optional property `urls/transcription` to the response with the `200` status
  - added the optional property `urls/transcription_csv` to the response with the `200` status
  - …4 more

[Operation history](https://skmtc.dev/reap/apis/reap-automation-api/changes/automation/create-transcription/post.md)

---

[API](https://skmtc.dev/reap/apis/reap-automation-api.md) - [All operations](https://skmtc.dev/reap/apis/reap-automation-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reap/apis/reap-automation-api/revisions/4dd80bac4a44?raw)
