---
title: "Publisher Voicebox Enroll"
method: POST
path: "/v1/publisher/{tenant_slug}/voicebox/enroll"
---

# Publisher Voicebox Enroll

`POST /v1/publisher/{tenant_slug}/voicebox/enroll`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/publisher/{tenant_slug}/voicebox/enroll`
- Auth: none declared

Self-serve enrollment (Stage 2) — build the publisher's OWN voice from a
short consent+sample recording (ElevenLabs Instant Voice Cloning) and stage
it as a ``verified`` profile awaiting activation.

Same gates as ``…/voicebox`` set: 503 when VOICEBOX_ENABLED is off, 403 for
free tier (plus/pro only), 422 when consent is not granted. The created
voice does NOT render until the publisher activates it (POST …/activate) —
IVC is immediate, so ``verified`` is set on success, but ``active`` stays a
deliberate, publisher-approved step (mirrors the "preview, then activate"
flow). At most one in-flight (pending/verified) enrollment per publisher.

## Path parameters

- `tenant_slug` string, required

## Headers

- `x-storyflo-publisher-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
