Skip to main content
POST
Apply a flat rewrite map to the segments' `speaker_label`...

Path Parameters

job_id
string<uuid>
required

Body

application/json; charset=utf-8

Body for POST /admin/jobs/transcriptions/:job_id/relabel-speakers.

Two complementary rewrite mechanisms, applied in order:

  1. relabels — flat rewrite map applied to every segment whose speaker_label matches a key. To merge S4 into S1 AND rename S1 to "Moderator", the client should send both rules already resolved: {"S4": "Participant", "S1": "Moderator"}. This is the bulk path and is the only one that propagates to Neo4j :SpeakerIdentity.

  2. segment_overrides — per-segment fixes for cases where one misclustered segment shouldn't drag its whole speaker group with it. Applied AFTER relabels, so the operator can do "merge S1+S2 into Moderator AND override segment X to be Participant" in one save. Single-segment moves are intentionally Postgres-only — too small a sample to meaningfully shift centroid clusters in Neo4j.

relabels
object
required
segment_overrides
AdminTranscriptionSegmentOverride · object[]

Response

id
string
required

jobs.id (same id the admin list returns).

workspace_id
string
required
status
string
required
progress
number<float>
required
error
string
required
segment_count
integer<int32>
required
segments
AdminTranscriptionSegment · object[]
required
created_at
string
required
content_visible
boolean
required

True iff transcription_text and segment text are populated normally. False means the admin is not a native member of this session AND has not elevated; content fields contain a placeholder & the UI should show the "View content (audited)" banner.

elevation_required
boolean
required

True iff the admin needs to POST /admin/content-elevate w/ a reason to see content. False either when the admin has access natively (member/owner/share) or has already elevated.

session_was_deleted
boolean
required

Set when this transcription's content was redacted via session deletion (i.e. transcription_text contains a [redacted-…] placeholder). Lets the UI show a "Deleted session" badge instead of a confused "Workspace-level" one.

transcription_id
string

transcriptions.id — the row that backs this job's output.

session_id
string
detected_language
string
forced_language
string
diarisation_model_version
string
transcription_text
string
speaker_count
integer<int32>
duration_ms
integer<int32>
avg_confidence
number<float>
completed_at
string
deletion_event_kind
string

When session_was_deleted is true, this is the matching gdpr_log.event_kind — e.g. session_deleted_by_owner or account_erasure_session_redacted. Lets the UI render an honest "why" without exposing actual user identifiers. None when no matching gdpr_log row was found (older deletions before the audit pipeline existed; or non-redacted transcriptions).