Update transcription
PATCH /transcriptions/{id} — change who owns a transcription after it was uploaded.
PATCH /transcriptions/{id}
Reassigns a transcription to another workspace member. The only field today is author;
it uses the same <type>:<value> format as the X-Author upload header — see
Assigning an author.
Use it when the author was not known at upload time — the CRM mapping was missing, the
manager had not joined the workspace yet — and you want to fix the attribution without
re-uploading. Requires a key with Allow file uploads (403 upload_scope_required
otherwise).
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | UUID | Transcription identifier — from List transcriptions or an upload response. |
Body
| Field | Type | Description |
|---|---|---|
author | string | null | email:name@company.com or user:<uuid> — an active workspace member. null hands the transcription back to the key's creator. |
Request
curl -X PATCH https://app.specala.ai/api/v1/developer/transcriptions/3fa85f64-5717-4562-b3fc-2c963f66afa6 \
-H "Authorization: Bearer sk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"author": "email:alex@company.com"}'import httpx
tid = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
resp = httpx.patch(
f"https://app.specala.ai/api/v1/developer/transcriptions/{tid}",
headers={"Authorization": "Bearer sk_live_your_key_here"},
json={"author": "email:alex@company.com"},
)
resp.raise_for_status()
print(resp.json()["author"]) # {"id": "9c2d4e6f-1a2b-4c3d-8e9f-0a1b2c3d4e5f", "email": "alex@company.com", "name": "Alex Morgan"}const tid = "3fa85f64-5717-4562-b3fc-2c963f66afa6";
const res = await fetch(
`https://app.specala.ai/api/v1/developer/transcriptions/${tid}`,
{
method: "PATCH",
headers: {
Authorization: "Bearer sk_live_your_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({ author: "email:alex@company.com" }),
},
);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { author } = await res.json();Response
200 OK with the full transcription — the same body as
Get transcription — with author updated.
It works in any status. Reassigning a queued or processing transcription means the
new author gets the "ready" notification and sees it in their list as soon as it completes.
Who can reassign
- The key's creator needs edit rights on the transcription — the same rules as editing it in the app: their own transcriptions, transcriptions in projects where they are an editor or owner, or everything for a workspace owner.
- A key can always reassign transcriptions it uploaded itself, even after handing them to someone else.
Errors
| Status | Code | When |
|---|---|---|
403 | upload_scope_required | Key doesn't have upload permission. |
403 | author_requires_api_key | Called with an OAuth token instead of an API key. |
403 | — | The key's creator has no edit rights on this transcription. |
404 | — | Unknown id, or a transcription in another workspace. |
422 | invalid_author / unsupported_author_type / author_not_member | Same rules as X-Author at upload — see Assigning an author. |