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

# Get Stt Vocabulary

`GET /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

Return the stored STT dictionary, injected flags, and effectiveness counts.

## Path parameters

- `campaign_id` string, required

## 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`: Validation Error

## Changes

- **2026-10-15** `458a4aad99ed`: 1 warning, 20 info
  - added the new `validated_feedback` enum value to the `terms/items/origin` response property for the response status `200`
  - added the optional property `canary` to the response with the `200` status
  - added the optional property `history` to the response with the `200` status
  - added the optional property `management_mode` to the response with the `200` status
  - …17 more
- **2026-09-11** `6560d7b04d4b`: 3 info
  - 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/get.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)
