> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usetuner.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Edit or Verify a Voice Clip

> Edit a clip's transcript and/or verify or unverify it.

Saving a changed transcript verifies the clip and bumps its version; saving the same
text only verifies. `verified=false` clears the verification. The set's
`transcripts_version` changes only when the clip actually changed.

Editing never re-scores anything: a real change only bumps the set's `transcripts_version`,
which makes existing transcription-accuracy scores for the set show as outdated. The user
re-scores a single call on demand.



## OpenAPI

````yaml https://api.usetuner.ai/public/openapi.json patch /api/v1/workspaces/{workspace_id}/agents/{agent_id}/voice-clip-sets/{voice_clip_set_id}/clips/{turn_index}
openapi: 3.1.0
info:
  title: Tuner API
  description: >-
    Send calls to Tuner and manage agents, evaluation settings, simulations and
    workspace settings.
  version: 1.0.0
servers:
  - url: https://api.usetuner.ai
security: []
tags:
  - name: calls
    description: Send call recordings and transcripts to Tuner and retrieve call details.
    x-group: Calls
  - name: workspaces
    description: >-
      Manage your workspaces, the API keys used to access them, and their PII
      redaction and data retention settings.
    x-group: Workspaces
  - name: simulation
    description: >-
      Run simulated calls against your agents, manage simulation profiles, and
      look up the caller personas and background-noise environments they can
      use.
    x-group: Simulation
  - name: scenarios
    description: Manage the test scenarios that simulated calls follow.
    x-group: Scenarios
  - name: replay-testing
    description: >-
      Replay recorded caller audio against a new version of your agent: upload
      or extract voice clips from real calls, then run them as replay runs.
    x-group: Replay Testing
  - name: agents
    description: Create, update and list the voice agents connected to your workspace.
    x-group: Agents
  - name: agent-settings
    description: >-
      Configure how Tuner evaluates an agent's calls, including evaluations,
      call outcomes, intents, data extraction, rules and alerts, plus the
      agent's SIP and outbound call configuration.
    x-group: Agent Settings
  - name: traces
    description: Send OpenTelemetry traces from your agent to Tuner.
    x-group: Traces
  - name: providers
    description: List the voice providers Tuner can connect to.
    x-group: Providers
paths:
  /api/v1/workspaces/{workspace_id}/agents/{agent_id}/voice-clip-sets/{voice_clip_set_id}/clips/{turn_index}:
    patch:
      tags:
        - simulation
      summary: Edit or Verify a Voice Clip
      description: >-
        Edit a clip's transcript and/or verify or unverify it.


        Saving a changed transcript verifies the clip and bumps its version;
        saving the same

        text only verifies. `verified=false` clears the verification. The set's

        `transcripts_version` changes only when the clip actually changed.


        Editing never re-scores anything: a real change only bumps the set's
        `transcripts_version`,

        which makes existing transcription-accuracy scores for the set show as
        outdated. The user

        re-scores a single call on demand.
      operationId: >-
        update_voice_clip_api_v1_workspaces__workspace_id__agents__agent_id__voice_clip_sets__voice_clip_set_id__clips__turn_index__patch
      parameters:
        - name: voice_clip_set_id
          in: path
          required: true
          schema:
            type: integer
            title: Voice Clip Set Id
        - name: turn_index
          in: path
          required: true
          schema:
            type: integer
            title: Turn Index
        - name: agent_id
          in: path
          required: true
          schema:
            type: integer
            description: Tuner's internal numeric ID for the agent.
            title: Agent Id
          description: Tuner's internal numeric ID for the agent.
        - name: workspace_id
          in: path
          required: true
          schema:
            type: integer
            description: Workspace ID. Find this in Workspace > General Settings.
            title: Workspace Id
          description: Workspace ID. Find this in Workspace > General Settings.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VoiceClipUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VoiceClipResponse'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              example:
                detail: Not authenticated
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: You do not have access to this workspace.
          content:
            application/json:
              example:
                detail: User does not have access to workspace 42
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Agent, voice clip set or clip (by turn index) not found.
          content:
            application/json:
              example:
                detail: Voice clip set with ID 9 not found
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The set has not finished extracting yet.
          content:
            application/json:
              example:
                detail: Clip set is still being processed; clips can't be edited yet
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: >-
            Empty body, `reference_transcript` longer than 5000 characters, or
            `verified=false` combined with `reference_transcript`.
          content:
            application/json:
              example:
                detail: Provide reference_transcript and/or verified.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - Bearer: []
components:
  schemas:
    VoiceClipUpdateRequest:
      properties:
        reference_transcript:
          anyOf:
            - type: string
              maxLength: 5000
            - type: 'null'
          title: Reference Transcript
          description: >-
            Corrected transcript of what the caller said. Saving it also marks
            the clip as verified. An empty string is valid for a silent clip.
        verified:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Verified
          description: >-
            Set to `true` to confirm the current transcript as correct, or
            `false` to clear the confirmation. Cannot be `false` together with
            `reference_transcript`.
      type: object
      title: VoiceClipUpdateRequest
      description: >-
        Input schema for editing and/or verifying one clip of a voice clip set.


        Saving a transcript edit always verifies the clip, so ``verified=false``
        together with

        ``reference_transcript`` is a contradiction and is rejected. An empty

        ``reference_transcript`` is valid (a silent clip).
    VoiceClipResponse:
      properties:
        id:
          type: integer
          title: Id
          description: Clip ID.
        turn_index:
          type: integer
          title: Turn Index
          description: Position of the clip in the set, in playback order.
        start_ms:
          type: integer
          title: Start Ms
          description: Start of the clip in the caller track, in milliseconds.
        end_ms:
          type: integer
          title: End Ms
          description: End of the clip in the caller track, in milliseconds.
        duration_ms:
          type: integer
          title: Duration Ms
          description: Length of the clip in milliseconds.
        reference_transcript:
          anyOf:
            - type: string
            - type: 'null'
          title: Reference Transcript
          description: Transcript of what the caller said in the clip, if available.
        verified:
          type: boolean
          title: Verified
          description: Whether a person has checked this clip's transcript.
          default: false
        verified_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Verified At
          description: When the transcript was verified. Empty if it is not verified.
        verified_by:
          anyOf:
            - type: integer
            - type: 'null'
          title: Verified By
          description: ID of the user who verified it.
        reference_version:
          type: integer
          title: Reference Version
          description: Goes up each time the transcript is edited.
          default: 1
        draft_source:
          anyOf:
            - type: string
            - type: 'null'
          title: Draft Source
          description: >-
            Which speech-to-text model or voice platform produced the first
            draft.
      type: object
      required:
        - id
        - turn_index
        - start_ms
        - end_ms
        - duration_ms
      title: VoiceClipResponse
      description: A single caller-turn clip within a voice clip set, in playback order.
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable description of what went wrong.
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Error body returned when a request fails.
  securitySchemes:
    Bearer:
      type: http
      description: >-
        Use Tuner API key (tr_api_...) or user session token. Find your API key
        in Workspace Settings > API Keys.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.