---
title: "Patch Stt Vocabulary"
method: PATCH
path: "/api/v1/campaigns/{campaign_id}/stt-vocabulary"
tags: ["stt-vocabulary"]
---

# Patch Stt Vocabulary

`PATCH /api/v1/campaigns/{campaign_id}/stt-vocabulary`

## Request

- Base URL: `https://api.outrival.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.outrival.com/api/v1/campaigns/{campaign_id}/stt-vocabulary`
- Auth: HTTP bearer

Replace staff-owned STT vocabulary fields and return the GET payload.

## Path parameters

- `campaign_id` string, required

## Request body

- SttVocabularyPatch: Staff PATCH body. All fields optional; unknown keys are rejected.
  - `expected_revision` integer, nullable
  - `request_id` string, uuid
  - `action` 'patch' | 'pin' | 'unpin' | 'suppress' | 'unsuppress' | 'rollback'
  - `management_mode` 'observe' | 'auto', nullable
  - `term` string, nullable
  - `target_revision` integer, nullable
  - `manual_terms` string[], nullable
  - `enabled` boolean, nullable
  - `auto_promote` boolean, nullable
  - `manual_prompt` string, nullable

## Response `200`

Successful Response

- SttVocabularyView
  - `campaign_id` string, required
  - `exists` boolean, required
  - `vocabulary_revision` integer
  - `management_mode` 'observe' | 'auto'
  - `qualification` object, nullable
  - `canary` object, nullable
  - `proposals` object[]
  - `history` SttVocabularyAction[]
    - `id` string, required
    - `action` string, required
    - `state` string, required
    - `expected_revision` integer, required
    - `term` string, nullable
    - `actor` string, nullable
    - `created_at` string, nullable
    - `evidence` object
  - `enabled` boolean, required
  - `auto_promote` boolean, required
  - `auto_extract` boolean, required
  - `global_enabled` boolean, required
  - `max_terms` integer, required
  - `extraction_version` string, nullable
  - `last_promotion_check` string, nullable
  - `updated_at` string, nullable
  - `injected_count` integer, required
  - `terms` SttVocabularyTerm[], required
    - `term` string, required
    - `origin` 'manual' | 'publish_extraction' | 'drift_feedback' | 'validated_feedback' | 'suppressed', required
    - `category` 'brand' | 'product' | 'person' | 'jargon', nullable
    - `confidence` number, nullable
    - `evidence_count` integer, nullable
    - `distinct_call_count` integer, nullable
    - `added_at` string, nullable
    - `pinned` boolean
    - `suppressed` boolean
    - `normalized_term` string
    - `injected` boolean, required
    - `effectiveness` SttVocabularyTermEffectiveness, required
      - `injected` integer
      - `helped` integer
      - `hurt` integer
      - `missed` integer
      - `spoken` integer
      - `ambiguous` integer
      - `evidence_available` boolean
      - `metric_version` 'transcription_drift_v4', nullable
      - `current_event_count` integer
      - `legacy_event_count` integer, nullable
      - `legacy_signal_count` integer
      - `verification_confirmed_count` integer
      - `verification_rejected_count` integer
      - `verification_ambiguous_count` integer
      - `verification_unavailable_count` integer
      - `verification_failed_count` integer
  - `scenario_prompt` string, nullable
  - `manual_prompt` string, nullable
  - `effective_prompt` string, nullable

## Other responses

- `400`: Invalid campaign ID
- `403`: Not authorized
- `422`: Invalid patch body

## Changes

- **2026-10-15** `458a4aad99ed`: 1 warning, 26 info
  - added the new `validated_feedback` enum value to the `terms/items/origin` response property for the response status `200`
  - added the new optional request property `action`
  - added the new optional request property `expected_revision`
  - added the new optional request property `management_mode`
  - …23 more
- **2026-09-11** `6560d7b04d4b`: 4 info
  - added the new optional request property `manual_prompt`
  - added the optional property `effective_prompt` to the response with the `200` status
  - added the optional property `manual_prompt` to the response with the `200` status
  - added the optional property `scenario_prompt` to the response with the `200` status
- **2026-09-10** `3d01623e823f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/outrival/apis/outrival-api/changes/api/v1/campaigns/:campaign_id/stt-vocabulary/patch.md)

---

[API](https://skmtc.dev/outrival/apis/outrival-api.md) - [All operations](https://skmtc.dev/outrival/apis/outrival-api/llms.txt) - [OpenAPI document](https://skmtc.dev/outrival/apis/outrival-api/revisions/f27d90300b5e?raw)
