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

# Derive Stt Vocabulary

`POST /api/v1/campaigns/{campaign_id}/derive-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}/derive-stt-vocabulary`
- Auth: HTTP bearer

Extract and atomically record proposed publish vocabulary entries.

``auto_extract=false`` returns a successful no-op. Otherwise only
publish_extraction proposals are recorded; active terms and
staff-owned manual_terms / suppressed_terms / enabled / auto_extract /
management controls are preserved. Injection at call spawn stays off until both
STT_VOCABULARY_ENABLED and the row's enabled flag are on; auto-promotion
requires qualified lifecycle evidence.

## Path parameters

- `campaign_id` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Invalid campaign ID
- `404`: Campaign not found
- `422`: Validation Error
- `500`: Extraction or persistence failure

---

[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)
