Skip to main content
POST
Split a segment in two
Without explicit texts the source splits at the word boundary nearest the time and missing translations are retranslated in one job. The first half keeps the id; both halves become outdated; variants are cleared and audio dropped. When to use: to separate two sentences or speakers. Side effects: Commits atomically: the project’s pipeline_status becomes transcript_edited, segment ETags change, affected segments become outdated (listed in the response’s effects) and their audio may be dropped. Cost: Free. An edit that starts a translation counts against the payer’s translation budget (429 rate_limited, policy translation-hour) and its 5 concurrent translation jobs (429 too_many_concurrent_jobs); then nothing is written. Idempotency: Idempotency-Key accepted (SDKs send one); retries within 24 h replay the first response. Concurrency: If-Match with the current segment ETag is required (428 if missing or *, 412 with current_etag if stale). On 412 re-read, re-apply once and retry. Refused during processing (409 project_not_ready) and while a dub runs, from its start until its merge ends or it fails (409 dub_in_progress); 409 transcript_busy means concurrent writes kept conflicting: retry after Retry-After. Paid text: on a project created through v3, 409 dub_payment_required until a dub of that project is charged. Required scopes: transcripts:write Errors: transcript_not_ready (409), segment_busy (409), project_not_ready (409), dub_in_progress (409), transcript_busy (409), too_many_concurrent_jobs (429), dub_payment_required (409)

Authorizations

Authorization
string
header
required

API key from Settings -> API keys, sent as Authorization: Bearer <key> (SDK environment variable RASK_API_KEY). Bound to one workspace and one acting user. Operations list the scopes they need (OpenAPI 3.1 scopes on a bearer scheme).

Scopes

transcripts:write

Headers

Idempotency-Key
string

Optional. A unique key per logical request (SDKs send a bare UUIDv4; an RFC 9651 quoted string is accepted and unquoted); reuse it unchanged on retries to replay the first response.

Required string length: 1 - 255
Pattern: ^[\x20-\x7E]+$
If-Match
string
required

Required: the segment's current ETag (etag of getSegment or listSegments); the write commits only if the segment still matches it.

Maximum string length: 128

Path Parameters

project_id
string
required

Project id (from createProject or listProjects).

Maximum string length: 64
segment_id
string
required

Segment id of the live transcript.

Maximum string length: 64

Body

application/json

Body of splitSegment. Omitted texts: the source splits at the word boundary nearest at_seconds and missing translations are retranslated.

at_seconds
number<double>
required

Split time, strictly inside the segment; both halves >= 0.1 s, in seconds (<= 3 decimals).

Required range: x >= 0
source
object

Explicit texts of both halves.

translation
object

Explicit texts of both halves.

Response

OK: TranscriptEditResult.

Result of a segment or transcript mutation. Transient (no id).

object
enum<string>
required

Always transcript_edit_result.

Available options:
transcript_edit_result
segments
object[]
required

Every created or changed segment, read back consistently, in time order.

deleted_segment_ids
string[]
required

Deleted segments.

operations
object[]
required

Segments per operation.

effects
object
required

Effects of a committed write.

warnings
object[]
required

Warnings.