---
title: "Webhook Publish"
method: POST
path: "/v1/webhook/publish"
---

# Webhook Publish

`POST /v1/webhook/publish`

## 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/webhook/publish`
- Auth: none declared

CMS webhook. Called by a publisher's CMS within seconds of publish; we
pre-render the audio so the player streams without inference latency on
the first listen.

## Headers

- `x-readout-signature` string, nullable

## Request body

- PublishRequest
  - `publisher` string, required
  - `article_id` string, required
  - `voice` string, required
  - `text` string, required
  - `speed` number

## Response `200`

Successful Response

- PublishResponse
  - `publisher` string, required
  - `article_id` string, required
  - `chunks` integer, required
  - `total_duration_sec` number, required
  - `total_cost_usd` number, required
  - `audio_urls` string[], required

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