---
title: "Commit an exactly validated Voice Profile receipt"
method: POST
path: "/api/v1/channels/{channel}/voices/commit"
tags: ["voices"]
---

# Commit an exactly validated Voice Profile receipt

`POST /api/v1/channels/{channel}/voices/commit`

## Request

- Base URL: `https://subscribr.ai`
- URL: `https://subscribr.ai/api/v1/channels/{channel}/voices/commit`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, required
- `If-Match` string

## Request body

- CommitVoiceProfileRequest
  - `profile` VoiceProfileV2, required
    - `writing_style_analysis` object, required
      - `adherence_checklist` string[], required
      - `delivery_recipe` object, required
        - `cadence` string, required
        - `energy` string, required
        - `pacing_and_emphasis` string[], required
      - `diction_and_syntax` object, required
        - `avoid` string[], required
        - `preferred_constructions` string[], required
        - `sentence_shape` string, required
        - `vocabulary_level` 'simple' | 'conversational' | 'sophisticated', required
        - `word_complexity` string, required
      - `do_dont` object, required
        - `do` string[], required
        - `dont` string[], required
        - `never_does` string[], required
      - `example_paragraph` string, required
      - `formatting_directives` string[], required
      - `jargon_policy` object, required
        - `allow` string[], required
        - `explain_with` string[], required
      - `lexical_glossary` object[], required
        - `definition` string, required
        - `term` string, required
      - `locale_and_dialect` string, required
      - `phrase_kit` object, required
        - `avoid` string[], required
        - `replacements` object[], required
          - `avoid` string, required
          - `use` string, required
        - `uses` string[], required
      - `rewriter_directives` string[], required
      - `rhetorical_toolkit` object, required
        - `analogy_and_evidence` string, required
        - `cta_patterns` object[], required
          - `location` 'opening' | 'middle' | 'closing', required
          - `pattern` string, required
        - `explanation_patterns` string[], required
        - `hook_patterns` string[], required
        - `humor_and_empathy` string, required
        - `storytelling_patterns` string[], required
        - `transitions` string[], required
      - `speaker_archetype` object, required
        - `axes` object, required
          - `age_vibe` string, required
          - `authority_posture` string, required
          - `profession_archetype` string, required
          - `temperament` string, required
        - `description` string, required
        - `label` string, required
      - `spoken_patterns` object, required
        - `common_phrases` string[], required
        - `starter_words` string[], required
        - `transition_phrases` string[], required
      - `stance_and_relationship` object, required
        - `audience_model` string, required
        - `certainty_level` string, required
        - `intimacy_distance` string, required
        - `narrative_person` string, required
      - `style_examples` string[], required
      - `thinking_style` string, required
  - `receipt` string, required

## Response `200`

Updated Voice Profile.

- VoiceProfileResponse
  - `data` VoiceProfileDescriptor, required
    - `checksum` string, nullable, required
    - `created_at` string, date-time, nullable, required
    - `framework_version` integer, required
    - `id` string, uuid, required
    - `name` string, required
    - `profile` unknown, required
    - `revision` string, required
    - `schema_version` integer, nullable, required
    - `script_voice_id` integer, required: Numeric voice ID matching a script numeric voice value. The id field remains the public UUID.
    - `updated_at` string, date-time, nullable, required
    - `writable` boolean, required
  - `meta` object, required
    - `idempotent_replay` boolean, required

## Other responses

- `201`: Created Voice Profile.
- `400`: The request could not be processed.
- `401`: Authentication is required.
- `403`: The token, role, entitlement, or object policy denies this action.
- `404`: The resource was not found or is not visible.
- `409`: The request conflicts with current state, revision, idempotency, or canonical replacement.
- `422`: One or more request fields are invalid.
- `429`: The request exceeded a rate limit.
- `500`: The service is temporarily unavailable.

---

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