---
title: "Create Editor Project"
method: POST
path: "/automation/create-editor"
---

# Create Editor Project

`POST /automation/create-editor`

## Request

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

Open one video in the Reap editor as a new project, ready to edit

## Request body

- CreateEditorRequest
  - `sourceUrl` string: URL of the video (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)
  - `resolution` 720 | 1080 | 1440 | 2160: Resolution of the project. Resolutions above 1080 require a Studio plan.
  - `selectedStart` number, nullable: Start time in seconds of the part to edit (defaults to the start of the video)
  - `selectedEnd` number, nullable: End time in seconds of the part to edit (defaults to the end of the video). The selected part must be 3 seconds to 15 minutes long, or up to 30 minutes on a monthly or yearly Studio plan; only the selected part is billed.

## 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' | 'editor'
  - `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-12** `67fe4f295c67`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reap/apis/reap-automation-api/changes/automation/create-editor/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/67fe4f295c67?raw)
